テーブルに制約がありました
CREATE TABLE "USERSAPPLICATIONS" (
"USERID" NUMBER NOT NULL ,
"APPLICATIONNAME" VARCHAR2 (30) NOT NULL ,
CONSTRAINT "PK_USERSAPPLICATIONS" PRIMARY KEY ("USERID","APPLICATIONNAME")
)
/
2 週間前に、テーブルを変更し、いくつかの列を追加し、制約 "PK_USERSAPPLICATIONS" を削除し、代理キーを追加しました。Oracle SQL Developer で、制約 PK_USERSAPPLICATIONS がもう存在しないことがわかります。
それにもかかわらず、同じ userid/applicationName の組み合わせで 2 つのエントリを追加しようとすると、エラーが発生します
SQL Error: ORA-00001: unique constraint (ACCOUNTMP1.PK_USERSAPPLICATIONS) violated
00001. 00000 - "unique constraint (%s.%s) violated"
*Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you may see
this message if a duplicate entry exists at a different level.
*Action: Either remove the unique restriction or do not insert the key.
ステートメントを実行すると
SELECT *
FROM user_cons_columns
WHERE constraint_name = 'PK_USERSAPPLICATIONS'
私はゼロ行を取得します。それはどうしてですか?制約 PK_USERSAPPLICATIONS はすでに数週間前に削除されているため、Oracle はこの制約について何の知識も持っていないはずです。また、データベースでも確認できません。