如何使用DEFAULT约束为mysql中的列创建随机数?

时间:2016-02-13 13:20:31

标签: mysql sql syntax-error

DEFAULT约束在接受字符串或当前日期值时没有问题。我需要的是一个约束,每次创建实体时都会创建一个随机的4位数字。我尝试了以下代码,但它返回语法错误。

ALTER TABLE client_number ADD(代码INT(4)DEFAULT FLOOR(RAND()* 9999)+1111);

以上语句返回以下错误:

#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的“floor(rand()* 9999)+1111”附近使用正确的语法

需要解决方案。

1 个答案:

答案 0 :(得分:3)

评论太长了。

documentation非常明确:

  

数据类型规范中的DEFAULT值子句表示a   列的默认值。除了一个例外,默认值必须   是一个常数;它不能是一种功能或表达。

你拥有的表达不是一个常数,所以它不起作用。您需要使用触发器。