【发布时间】:2021-04-15 00:30:20
【问题描述】:
当向表中添加新行时,我想为一列生成 6 位随机数。我尝试了以下查询将默认值设置为该列
ALTER TABLE test_table
ADD COLUMN test_column int(10) NOT NULL DEFAULT LPAD(FLOOR(RAND() * 999999.99), 6, 1);
它不适用于 MySQL 5.6 并返回以下错误
错误 1064 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 'LPAD(FLOOR(RAND() * 999999.99), 6, 1)' 附近使用的正确语法
【问题讨论】:
-
那么,您的主数据库是哪一个?为什么?
-
MYSQL 是我的主要数据库。我们在 prod 中使用 MYSQL,但对于开发工作,我们使用 MariaDB
-
“不工作”是什么意思?抛出了什么错误?你试过别的吗?您是否希望在两个不同的 DBMS 之间使用相同的语法?
-
在我看来,为 dev 和 prod 选择两个不同的数据库从来都不是一个好的选择。当然,MariaDB 是 MySQL 的一个分支,但它们可以执行的操作仍然存在差异......这就是其中之一。我已经测试了 MySQL 5.6、5.7 和 8.0 版本,它们都未能运行您的语法;都返回相同的
error 1064。