ID ごとに、値 X を持つ行は 1 つしか存在できないという制約を記述しようとしています。
あまり意味がないかもしれないので、例を挙げましょう。
テーブルに 3 つの行と 2 つの列があり、各行には同じ ID (列 1) がありますが、2 番目の列にはさまざまな値があり、そのうちの 2 つは同一で、3 番目は一意であるとします。一意の値が一意のままであることを確認するにはどうすればよいですか?
これが私が使ってきた制約です:
ADD CONSTRAINT myConstraint UNIQUE (col1, col2);
col2 NULL を作成して重複を作成し、一意にするときに NOT NULL を使用できると考えました (単一の値が一意であることだけを気にするため)。これが機能しない理由は、何らかの理由で私の制約がNULLの重複を許可していないためです.NULLを比較する方法を知っているようです...
と言いたいのが理想です。
ADD CONSTRAINT myConstraint UNIQUE (col1, col2 = 'REQUESTED');
しかし、そのようなものは存在しません。
制約を調べましたCHECK
が、チェック制約を使用してこれを行うように指示する方法がわかりません。
基本的に、着信 ID を取得し、 column2 の値が である同一の ID が他にないことを確認したいと考えていますREQUESTED
。
これがあまり意味をなさない場合は申し訳ありませんが、これを説明するために最善を尽くしています.