gpt4 book ai didi

MySQL:使用日期检查约束

转载 作者:可可西里 更新时间:2023-11-01 07:12:52 24 4
gpt4 key购买 nike

我正在使用 MySQL,这是一个简单的查询集:

create table dcheck (
fdate date,
sdate date,
check (fdate <= sdate)
);

insert into dcheck values ('2006-12-12','2003-12-12');
insert into dcheck values ('2003-12-12', '2006-12-12');

这里我希望第一个插入语句失败。但令人惊讶的是,查询都通过了,并且表中有两行。

谁能解释一下为什么?

谢谢

最佳答案

MySQL 不执行 CHECK 约束。来自latest (5.6) fine manual :

The CHECK clause is parsed but ignored by all storage engines.

因此语法被解析为与其他其他 SQL 兼容,但未实现检查。

您可以使用 BEFORE INSERT 和 BEFORE UPDATE 触发器伪造您的 CHECK 约束 threw an exception如果未满足所需条件。

关于MySQL:使用日期检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254229/

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