[解決済み] Postgresで既存のテーブルに制約を追加しようとすると、なぜSQL state:23503が表示されるのですか?
2022-02-10 02:45:20
質問
テーブル
Advisor
であり、特殊な
User
のみを含んでおり
id
と
user_id
を(今のところ!)作ろうとしています。
user_id
を外部キーにするスクリプトです。
ALTER TABLE advisor
ADD CONSTRAINT advisor_user_id_fkey
FOREIGN KEY (user_id) REFERENCES "user" (id);
うまくいくはずなのですが、次のようなエラーが発生します。
ERROR: insert or update on table "advisor" violates foreign key constraint "advisor_user_id_fkey"
SQL state: 23503
Detail: Key (user_id)=(44) is not present in table "user".
を参照するべきだと言っているのですから、これはおかしいと思います。
user.id
であって
user.user_id
しかし、明らかに私のやり方が間違っているようです。
どなたかお分かりになる方はいらっしゃいますか?ありがとうございます。
を更新しました。 なぜ user ではなく "user" なのかというと、pgAdmin は user を好まないからです。
解決方法は?
エラーメッセージには、次のように書かれています。 あなたの "advisor" テーブルに、あなたの "user" テーブルに存在しないエントリ (44) があります。
あなたの外部キーは "advisor" で定義され、"user" テーブルが親テーブルであることを定めています。おそらく、その外部キーが逆に定義されているのではありませんか?
この問題については、"user" が予約語であるため、pgadmin はこの単語でトラブルを起こしています。もし、変更できるのであれば、変更することをお勧めします。予約語については、以下を参照してください。 http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html .
関連
-
[解決済み】SQL Server サブクエリが1つ以上の値を返しました。サブクエリが =, !=, <, <= , >, >= に続く場合、これは許可されません。
-
[解決済み】SQL ServerでIdentityカラムを更新する方法は?
-
[解決済み] エラー (ORA-00923: 期待された場所に FROM キーワードが見つかりませんでした)
-
[解決済み] エラー: 名前解析スクリプトで正しい関数に渡された長さのパラメーターが無効です。
-
[解決済み] FOREIGN KEY制約で参照されているため、テーブルを切り捨てることができないのですか?
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み】既存テーブルへの外部キー追加
-
[解決済み] ALTER TABLE文に'ON DELETE CASCADE'を追加する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】SQLクエリ「00904. 00000 - "%s: 無効な識別子"
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] エラー: 名前解析スクリプトで正しい関数に渡された長さのパラメーターが無効です。
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない