gpt4 book ai didi

sql - 更新时违反约束

转载 作者:行者123 更新时间:2023-12-04 18:30:36 26 4
gpt4 key购买 nike

我有一个包含两个链接列的表,一个强制 bool 值和一个可选日期。只有当 bool 值为 FALSE 时才能有日期。所以我有这个结构:

CREATE TABLE FOO (
FOO_ID INT IDENTITY(1, 1) NOT NULL,
MY_DATE DATETIME,
MY_BOOLEAN BIT DEFAULT 0 NOT NULL,

CONSTRAINT FOO_PK PRIMARY KEY (FOO_ID)
);

我写了这个约束来保持数据的完整性:

ALTER TABLE FOO
ADD CONSTRAINT FOO_CHK CHECK (
MY_BOOLEAN=0 OR MY_DATE IS NULL
);

我肯定遗漏了一些明显的东西,但事实是我无法运行这个更新查询:

UPDATE FOO
SET
MY_BOOLEAN=1,
MY_DATE=NULL
WHERE FOO_ID=31416

我收到检查约束冲突错误并且更新失败。我做错了什么?


更新

很遗憾地通知您,我输入了错误的列名...抱歉浪费您的时间。我希望我可以删除问题:_(

最佳答案

我已经用这个脚本对此进行了测试,没有发现任何错误。还有其他限制吗?

CREATE TABLE FOO (
FOO_ID INT IDENTITY(1, 1) NOT NULL,
MY_DATE DATETIME,
MY_BOOLEAN BIT DEFAULT 0 NOT NULL,

CONSTRAINT FOO_PK PRIMARY KEY (FOO_ID)
);
ALTER TABLE FOO
ADD CONSTRAINT FOO_CHK CHECK (
MY_BOOLEAN=0 OR MY_DATE IS NULL
);

set identity_insert foo on
insert into foo(FOO_ID, my_date, MY_BOOLEAN)
select 31416, '20090101', 0
set identity_insert foo off

UPDATE FOO
SET
MY_BOOLEAN=1,
MY_DATE=NULL
WHERE FOO_ID=31416

关于sql - 更新时违反约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com