220606_TIL

신두다·2022년 6월 6일
0

TIL

목록 보기
35/82

어제에 이어서...

한 것 / 배운 것

  1. "Primary Key - Serial start at 0"
  • 아래처럼 0 벨류를 하나 먼저 insert 해두는 것으로 해봤으나 원하는 결과가 나오지 않았다.
    cur.execute("INSERT INTO passenger (Id) VALUES (0);") (바로 뒤에 있던 commit을 제거하고 뒤에 for문이랑 같이 커밋되도록도 해봤는데 똑같았음. 커밋만 뺀다고 차이가 있을리가!)
  • 시퀀스 변경하는 것으로 해봄
    cur.execute("ALTER SEQUENCE passenger_id_seq RESTART WITH 0;")
  • 근데 psycopg2.errors.InvalidParameterValue: RESTART value (0) cannot be less than MINVALUE (1) 오류 때문에 안됨.
  • 그래서 다음과 같이 minvalue를 조정해주었다. cur.execute("ALTER SEQUENCE passenger_id_seq MINVALUE 0 START 0 RESTART 0;")
  • 해결!
  • PostgreSQL에서 시퀀스가 뭔지 대략적으로는 여기를 참고하고, set sequence에 대해서는 여기 공식문서를 참고하자. (시퀀스는 직접 생성해서 여러 용도로 쓸 수도 있는 모양인데, 앞으로 만나게 될 일이 있겠지)

  1. Siblings/Spouses Aboard Parents/Children Aboard 두 칼럼명 Insert into 할 때 / 문자 때문에 오류나는 것 관련
  • 도전과제 자체에서는 필드명은 임의로 바꿔도 된다고 해서 우선 이름을 aa, bb로 바꿔 완료하기는 했다.
  • 근데 저런 칼럼명 가진 경우에 어떻게 처리할 수 있을지.. 여러 방식으로 해봤지만 안됐다. 이스케이프 문자를 써봐도 계속 오류가 났고.
  • 결국 더 이상 구글링은 무의미할 것 같아 다른 동기들 코드를 봤다. 근데 도전과제 하신 분들 중 내가 본 분들은 전부 컬럼명을 바꿔줬다. Siblings_Spouses_Aboard 이런 식으로!
  • 원래 컬럼명은 _로 구분하는 관습? 같은 건 알고는 있었는데 그래도 / 문자 같은거 어떻게 처리할지 궁금했었는데 좀 아쉽다. 기회가 되면 다른 분께 물어보자.
  • 일단 관습을 기억하고 나도 테이블 만들 때 꼭 따르는 걸로 하고 넘어가보자구!!

이건 번외로 이두희 대표가 한 말ㅋㅋㅋ

  • 개발자는 대단한 일을 하는 사람들이 아니라 구글에서 검색해 가지구 내 컴퓨터에 붙여넣기를 하는 일
  • 어느 회사를 가든 개발자한테 구글 꺼놓고 코딩해 봐! 그러면 아무도 못해!
  • 사실 이런 말은 수 많은 유투브 속 개발자들의 입에서 들어왔었다. 혼자 코드 못 짜도 상관없다는 말은 당연히 아니겠고, 그만큼 검색과 응용이 더 중요한 걸 강조하는 말이겠지! 그니까 검색하는 걸 부끄러워할 필요 없어!! 대신 감사하자. 나보다 먼저 시행착오를 겪어주시고, 그걸 정리해서 블로그에 올려주시고, 제 거지같은 질문에도 친철히 답변해주시고, 감사합니다.. 🙏🙏
  • 그리고 난 그래도 원하는 정보를 빨리 찾아내는 능력이 아예 없진 않은 것 같다. 그것도 감사감사 🙏🙏
profile
B2B SaaS 회사에서 Data Analyst로 일하고 있습니다.

0개의 댓글