2列のテーブルがあります
値0でcolumn1を挿入または更新すると、column2は値を受け入れず、nullにする必要があります
この制約を追加する方法はありますか
CHECK
テーブルの作成中に、次の方法で制約を追加できます。
CREATE TABLE tableDemo (
column1 int,
column2 varchar(50),
CONSTRAINT CK_column1_column2 CHECK ((column1 = 0 AND column2 IS NULL) OR column1 != 0)
)
SQLFIDDLEをチェックしてください
SQL Serverを使用している場合は、チェック制約の使用を検討できます。
次の例を見てください
CREATE TABLE #Table(
column_1 INT,
column_2 VARCHAR(250)
)
ALTER TABLE #Table
ADD CONSTRAINT chkRow CHECK ((column_1 = 0 AND column_2 IS NULL) OR column_1 != 0)
INSERT INTO #Table SELECT 0, NULL
INSERT INTO #Table SELECT 0, 'TEST'
INSERT INTO #Table SELECT 1, 'TEST'
UPDATE #Table
SET column_1 = 0
WHERE column_1 = 1
SELECT *
FROM #Table
DROP TABLE #Table