sql >> データベース >  >> RDS >> Sqlserver

PRIMARY KEY制約違反エラーSQL

    設計上、テーブル [cresql].[dbo].[AR_Transactions] 主キーの値を 1 つだけ保持することになっています。あなたの場合、これはこの PK を構成する列の組み合わせのようです。

    これは SQL の問題ではなく、設計コンセプトのようです。

    どのキーの組み合わせが主キーを構成しているかを確認する必要があります。設計上、一度挿入して後でその組み合わせを更新できると記載されている可能性があります (ただし、これを良い設計とは考えていません)。

    編集

    Trans_Id は PK であり、挿入でその列を使用していないため、IDENTITY として挿入されるか、DEFAULT (brrrrr) として挿入されるか、TRIGGER を使用して挿入されます。

    アイデンティティ: IDENTITY の指定が間違っていないか確認してください。その場合は、リセットするだけです。 T-SQL テーブル変数の ID 列を再シードするにはどうすればよいですか?

    デフォルト: これは奇妙な選択であり、データベースを設計した人に尋ねるか、ドキュメントを読むか、単に自分でそれを理解する必要があるかもしれません.いずれにせよ、これは非常に珍しい選択です。

    トリガー: トリガーを見つけ、コードを読んで、それが何をしているかを確認します。トリガーのリストを見つける方法は次のとおりです。 -trigger-exists-in-sql-server">SQL Server にトリガーが存在するかどうかを確認する最も移植性の高い方法は?

    別のシナリオ:

    問題のある AUDIT テーブルに挿入するトリガーが存在する可能性があります。テーブルに他のトリガーがあるかどうかを確認し、それらが何をするかを確認してください。




    1. MySQLを使用した異なるフィールドでの複数のGROUP_CONCAT

    2. UNIONを使用したMySQLビューの作成

    3. ドロップダウン選択に基づいてテーブル内のJSPでデータをフェッチする方法

    4. 一般的なデータベースサーバーの構築と展開の手順