【解決方法】UNIQUE KEY 制約違反

プログラミングQA


次のようにテーブルを設計しました。

SQL
CREATE TABLE [School](
    [SchoolID] [int] IDENTITY(1,1) NOT NULL,
    [StudentID] [int] NOT NULL,
    [Section] [char](1) NOT NULL,
 CONSTRAINT [PK_Student] PRIMARY KEY NONCLUSTERED
(
    [SchoolID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY],
 CONSTRAINT [CUK_Student] UNIQUE CLUSTERED
(
    [StudentID] ASC,
    [Section] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]</pre>

値を挿入すると、エラーが発生します

Violation of UNIQUE KEY constraint 'CUK_Student'. Cannot insert duplicate key in object 'School'. The statement has been terminated.

エラーは私の理解を超えています。 これを修正する方法を教えてください。また、このエラーの背後にある理由を説明して、その原因を理解できるようにしてください。

前もって感謝します、
ヌタン・ラニー

解決策 1

やあ、

あなたの状況に応じて

UNIQUE KEY 制約違反:

[StudentID]、[Section] 複合主キーであり、一意である必要があります。
[SchoolID] また、一意である必要があります。

したがって、同じ値を挿入しようとしています ([StudentID]、[Section])。

これをチェックして。 これは、挿入クエリの唯一のエラーです。

――アミット

解決策 3

列の一意のキーを作成しました [StudentID]、[Section].
たとえば、Studentid 列に「1」を挿入した場合、section 列に「section1」を挿入します。 同じ値の組み合わせを挿入しようとすると、そのエラーが発生します。

解決策 2

やあ…

[SchoolID] 主キーであるため、重複する値は許可されません。

エラーが発生しました。

解決策 5

UNIQUE KEY 制約 ‘UQ__TBL_Farm__91785593E0D120B6’ に違反しています。 オブジェクト ‘dbo.TBL_Farmer_Details’ に重複するキーを挿入できません。 重複キーの値は (232018411312) です。

コメント

タイトルとURLをコピーしました