我有两列的表格
现在,如果我插入或更新值为 0 的 column1,column2 不应该接受任何值并且应该为 null
他们有什么方法可以添加这个约束吗
如果您使用的是 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
创建表时,您可以通过CHECK
以下方式添加约束:
CREATE TABLE tableDemo (
column1 int,
column2 varchar(50),
CONSTRAINT CK_column1_column2 CHECK ((column1 = 0 AND column2 IS NULL) OR column1 != 0)
)