1

2列のテーブルがあります

値0でcolumn1を挿入または更新すると、column2は値を受け入れず、nullにする必要があります

この制約を追加する方法はありますか

4

2 に答える 2

2

CHECKテーブルの作成中に、次の方法で制約を追加できます。

CREATE TABLE tableDemo (
   column1  int, 
   column2  varchar(50),
   CONSTRAINT CK_column1_column2 CHECK ((column1 = 0 AND column2 IS NULL) OR column1 != 0)
)

SQLFIDDLEをチェックしてください

于 2012-09-06T05:56:05.617 に答える
2

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
于 2012-09-06T05:42:14.797 に答える