SQL第二列依赖于第一列值

时间:2012-09-06 05:38:51

标签: sql

我有两列

的表格

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

他们是否可以添加此约束

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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