DEFAULT约束在接受字符串或当前日期值方面没有问题。我需要的是一个约束,它将在每次创建实体时创建一个随机的4位数。我尝试了以下代码,但它返回语法错误。
- 更改表客户编号ADD(代码INT(4)默认下限(RAND()* 9999)+1111);**
上述语句返回以下错误:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'floor(rand()*9999)+1111)' at line 1
需要解决方案。
2条答案
按热度按时间x9ybnkn61#
documentation非常清楚:
数据类型规范中的DEFAULT value子句指示列的默认值。除了一个例外,默认值必须是常量;它不能是函数或表达式。
你的表达式不是常量,所以不起作用。你需要使用触发器。
7gcisfzg2#
运行以下查询
修改表格
table_name
在some_feild
之后添加field_name
整数(4)非空默认值(rand()*(9999 - 1000)+ 1000);结果给出一个介于1000-9999 x1c 0d1x之间的随机数