(これが重複した投稿である場合は申し訳ありませんが、この問題の例が見つからないようです)
次のような4列のmysqlテーブルがあります。
SomeTable
=========
ID (int)
name (varchar(255))
column1 (varchar(255))
column2 (double)
ここでやりたいことは、null 値を持つ列 (column1 または column2) が常に 1 つになるように制約を追加することです。私は次のことを試しました:
ALTER TABLE mytable
ADD CHECK (
(column1 IS NOT NULL && column2 IS NULL) ||
(column2 IS NOT NULL && column1 IS NULL)
)
しかし、次のようなケースがまだある可能性があるため、機能していないようです。
CASE1:
------
name: bla
column1: null
column2: null
CASE2:
------
name: bla
column1: somevalue
column2: 123
case1 と case2 を試したときにエラーが発生するようにするにはどうすればよいですか?
(さらに、記憶がよければ、使用した拘束を短くすることができますが、どのように行われたか思い出せません。誰かが私を助けてくれたら嬉しいです!)