2つのフィールドに基づいたユニーク制約の論理を理解できません。重複のないUPDATE文のORA-00001
私は3つの列を含むDESCRIPTIONS
という名前の次のテーブルがあります。今ID_DESCRIPTION
、NAME
、ID_DESCRIPTION_TYPE
ID_DESCRIPTION
はprimary key
あり、カップル(ID_DESCRIPTION
、NAME
)のunique constraint
UK_DESCRIPTION
があります。私は次のクエリを実行しようとした場合
:
UPDATE DESCRIPTIONS SET NAME = 'USA' WHERE ID_DESCRIPTION = 9255813
を私はユニーク制約UK_DESCRIPTION
に違反していることを言って、ORA-00001
例外を取得しています。
これで、カップル(9255813
,)が既に存在することを意味しますか? ID_DESCRIPTION
であるため しかし、私はこれが可能であるかを確認していないprimary key
ため、独自のクエリ
SELECT * FROM DESCRIPTIONS WHERE ID_DESCRIPTION = 9255813
の結果のみが1つの結果、私は更新したいものを返します。 私はここで何が分からないのですか?
質問を編集して、すべての制約とインデックスを含む完全な 'create table'文をテーブルに追加してください。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、[スクリーンショットなし](http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-asking-a-question/285557#285557) –