DBAtlas · 데이터베이스 운영 아틀라스

42P16: invalid_table_definition

PostgreSQL

의미

테이블 정의가 유효하지 않아 DDL 명령이 거부되었다. 요청한 테이블/컬럼 구조가 PostgreSQL 규칙을 위반한다.

원인

기본 키를 두 개 이상 정의('multiple primary keys for table are not allowed'), 상속과 충돌하는 정의, generated/identity 컬럼 제약, ALTER TABLE로 만들 수 없는 구조로의 변경 같은 경우다. 자동 생성된 마이그레이션 스크립트에서 흔하다.

해결 방법

오류 메시지의 구체적인 이유를 읽는다. PRIMARY KEY는 하나만 정의하고, 다중 컬럼 키가 필요하면 PRIMARY KEY (a, b) 형태의 복합 키를 사용한다. identity/generated 컬럼 규칙을 검토한다. \d my_table로 현재 테이블 정의를 확인하고 마이그레이션 스크립트를 수정한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목