6

テーブルに次のようなFKがあります。

FK

NULL明らかに、この列と、親テーブルに存在するすべての値を挿入できるはずです。

しかし、挿入しようとするとNULL、次のエラーが発生します。

INSERTステートメントがFOREIGNKEY制約「users_fk」と競合しました。データベース「mydatabase」、テーブル「dbo.country」、列「country_id」で競合が発生しました。

4

1 に答える 1

15

NULLあなたは絶対に正しいです-あなたはこの列に挿入することができるはずです。

あなたはあなたがあなたであると500%確信していますか?エラーメッセージは別のことを示しています-無効な値を挿入しているように見えます。

それはあなたが持っているということでしょうか

(a)追加の(無効な)値を挿入するスクリプトの別の行?

または

(b)このテーブルに何か無効なことをするトリガーがありますか?

更新:(コメントに基づく)ステートメントで列を指定して
ない場合、その列に無効なデフォルト値が定義されている可能性がありますか?のデフォルトか何かのようなもの。INSERT0

デフォルト値がある場合-そのデフォルト値が挿入されNULLます(予想どおり、ではありません)

于 2012-04-29T20:12:16.400 に答える