PostgreSQL에서 Entity Framework를 사용해서 DB조작할 때 에러에 대한 메모. id컬럼을 Serial형(Auto Increasing)으로 만든 테이블에 id 값을 생략한 형식으로 INSERT를 하려고 했더니 다음과 같은 에러가 났다. ERROR: 重複キーが一意性制約" table_pkey "に違反しています。 ERROR: duplicate key value violates unique constraint "table_pkey" 초기화 SQL 스크립트로 데이터만 집어넣은 컬럼이라 치가 중복이 된 건 아니고, 왜 이런 에러가 나는지 감이 안잡혔는데 다음 링크에서 해답을 얻었다. PostgreSQLでINSERT時に自動採番の主キーが重複してエラーが出る場合の対処法 요약을 하자면, PostgreSQL에서는 자동으로 증가하는 번호를 시퀀스 오브젝트를 사용하여 내부적으로 관리하는데 이걸 수동으로 변경하거나 데이터를 외부에서 삽입 혹은 복사하게 되면 실제 컬럼에 들어간 값과 시퀀스 오브젝트의 값이 달라지게 되어서 문제가 생기는 경우가 있다. 내 경우에는 스크립트로 SQL 을 직접 입력해서 값을 삽입한 것이 문제가 된 듯. 이것을 확인하고 수정하는 건 다음의 3단계를 거친다. 실제 테이블 컬럼값의 최대치를 확인 >> SELECT MAX(id) FROM table; 시퀀스 오브젝트 값 확인 >> SELECT nextval('table_id_seq'); 두 값이 일치하면 문제가 없음. 두 값이 불일치하는 경우, 시퀀스 오브젝트 값을 테이블 컬럼값으로 변경해준다. >> SELECT setval('table_id_seq', (SELECT MAX(id) FROM table));
12월 와서야 8월 목표에 평가를 안 했고 9-11월 목표도 날려먹은 걸 알았음..ㅠㅠ
답글삭제1. 술은 계속 먹고 있으니 실패다 바보야
2. 한국어교원양성과정은 최종합격해서 자격증 취득할 듯!!
3. 바베큐 신나게 구웠지...새하얗게 ㅋㅋㅋㅋㅋ
4. 잘 다녀와서 시험도 잘 봤고
5. 육회를 비롯해서 잘 먹고 잘 놀았음.