限制:18岁以下不能成为非政府组织的支持者

发布于 2025-01-14 21:21:35 字数 1432 浏览 6 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

始终不够爱げ你 2025-01-21 21:21:35

我们可以使用 CHECK CONSTRAINT,但我们必须对日期进行硬编码,因为 CHECK CONSTRAINT 中不允许使用 CURRENT_DATE。请注意,检查约束仅在最新版本的 mySQL 上起作用。
如果这种方法不是您正在寻找的,另一种可能性是插入前触发。触发器的优点是能够检查其他行和其他表,这是 CONSTRAINTS 无法做到的。

创建表支持者 (
名称 varchar(25), 
电子邮件 varchar(25), 
电话 varchar(25), 
地址 varchar(25), 
邮政编码 varchar(25),
城市 varchar(25), 
生日日期检查(生日<'2004-03-17')
);
插入支持者(姓名、生日)值('Andrew','2000-01-01');
插入支持者(姓名、生日)值('Bernard','2010-01-01');
违反检查约束“Supporter_chk_1”。

db<>fiddle此处

We can use a CHECK CONSTRAINT, but we have to hard-code the date because CURRENT_DATE is not allowed in a CHECK CONSTRAINT. Please note that check constraint only function on recents editions of mySQL.
If this approach is not what you are looking for the other possibility is a TRIGGER BEFORE INSERT. A trigger has the advantage of being able to check other rows and other table, which CONSTRAINTS cannot do.

create table Supporter (
name varchar(25), 
email varchar(25), 
phone varchar(25), 
address varchar(25), 
zip_code varchar(25),
city varchar(25), 
birthday date CHECK (birthday < '2004-03-17')
) ;
insert into Supporter (name, birthday) values ('Andrew','2000-01-01');
insert into Supporter (name, birthday) values ('Bernard','2010-01-01');
Check constraint 'Supporter_chk_1' is violated.

db<>fiddle here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文