DEFAULT约束在接受字符串或当前日期值时没有问题。我需要的是一个约束,每次创建实体时都会创建一个随机的4位数字。我尝试了以下代码,但它返回语法错误。
ALTER TABLE client_number ADD(代码INT(4)DEFAULT FLOOR(RAND()* 9999)+1111);
以上语句返回以下错误:
#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的“floor(rand()* 9999)+1111”附近使用正确的语法
需要解决方案。
答案 0 :(得分:3)
评论太长了。
documentation非常明确:
数据类型规范中的DEFAULT值子句表示a 列的默认值。除了一个例外,默认值必须 是一个常数;它不能是一种功能或表达。
你拥有的表达不是一个常数,所以它不起作用。您需要使用触发器。