mysql 为什么我不能将CURDATE()添加到检查中?

xyhw6mcr  于 2023-04-05  发布在  Mysql
关注(0)|答案(1)|浏览(163)

为什么我不能将CURDATE()添加到检查中?

alter table TStudenten add constraint GebDatumCheck check (timestampdiff(YEAR, StudGebDatum, CURDATE()) >= 18);

我能做些什么让它起作用
当我想添加CURDATE时,我收到此消息
错误代码:3814.检查约束“GebDatumCheck”的表达式包含不允许的函数:curdate.*

5lhxktic

5lhxktic1#

因为CURDATE()不返回一致的结果。documentation说:
允许使用文字、确定性内置函数和运算符。如果给定表中的相同数据,多次调用会产生相同的结果(与连接的用户无关),则函数是确定性的。非确定性函数和此定义失败的函数示例:CONNECTION_ID()CURRENT_USER()NOW()

相关问题