SQL第二列依赖于第一列值

  • 本文关键字:一列 二列 SQL 依赖于 sql
  • 更新时间 :
  • 英文 :


我有两列的选项卡

现在,如果我插入或更新值为0的列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

如果您使用的是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

最新更新