gpt4 book ai didi

mysql - CREATE TABLE 中的日期语法 CHECK 约束

转载 作者:行者123 更新时间:2023-11-29 12:19:33 25 4
gpt4 key购买 nike

我正在 SQLite 中创建表并想要检查日期的语法。应该是“YYYY-MM-DD”。当我将数据插入到该表中时,当我在插入日期时键入其他内容时,例如,应该会出现错误。插入成员(DoB)值('2013-120qw')。它应该只是例如“2013-12-04”。

这是我的表格:

CREATE TABLE Member(
email VARCHAR(100) NOT NULL,
name VARCHAR(100) NOT NULL,
DoB TEXT(10) NOT NULL CHECK (length(DoB) IN (10) AND date(DoB) BETWEEN date('1900-01-01') AND date(CURRENT_DATE)),
telephone VARCHAR(11) NOT NULL CHECK (length(telephone) IN (11)),
PRIMARY KEY (email)
);

最佳答案

问题是 date() 对于无效的日期字符串返回 NULL,并且 NULL 不会使检查约束失败。

添加一个单独的检查,以确保 date() 是否满意:

...
DoB TEXT(10) NOT NULL CHECK (date(DoB) IS NOT NULL AND
length(DoB) = 10 AND
DoB BETWEEN '1900-01-01' AND CURRENT_DATE),
...

关于mysql - CREATE TABLE 中的日期语法 CHECK 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29234232/

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