1

我有两列的表格

现在,如果我插入或更新值为 0 的 column1,column2 不应该接受任何值并且应该为 null

他们有什么方法可以添加这个约束吗

4

2 回答 2

2

如果您使用的是 SQL Server,则可以查看使用CHECK Constraints

看看下面的例子

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 回答
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 回答