DBAtlas · データベース運用アトラス

42P16: invalid_table_definition

PostgreSQL

意味

テーブル定義が無効なため、DDL コマンドが拒否された。要求されたテーブル/列の構造が PostgreSQL の規則に違反している。

原因

複数の主キーの定義 ('multiple primary keys for table are not allowed')、継承と矛盾する定義、生成列/identity 列の制約、または ALTER TABLE で生成できない構造への変更などの状況。自動生成されたマイグレーションスクリプトでよく見られる。

対処方法

エラーメッセージで具体的な理由を確認する。PRIMARY KEY は 1 つだけ定義し、複数列のキーが必要な場合は PRIMARY KEY (a, b) 形式の複合キーを使用する。identity/生成列の規則を見直す。\d my_table で現在のテーブル定義を確認し、マイグレーションスクリプトを修正する。

DBAtlas で開く →

同じデータベースの他の項目