我有两列
的表格现在,如果我插入或更新值为0的column1,则column2不应接受任何值,并且应为null
他们是否可以添加此约束
答案 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