在 MySQL 中使用函数作为默认值
在 MySQL 中,无法将函数指定为列的默认值。这可能会令人沮丧,尤其是当您想使用函数为列生成唯一值(例如 UUID)时。
错误消息
当您尝试时要创建一个默认值是函数的表,您将收到类似于以下内容的错误消息以下:
ERROR 1064 (42000): 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 'uuid()' at line 10
替代解决方案
虽然您不能直接使用函数作为默认值,但有一个解决方法涉及使用触发器。触发器是一种存储过程,当发生特定事件(例如向表中插入新行)时自动执行。以下是可用于为 app_users 表中的 api_key 列生成 UUID 的触发器示例:
CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW SET new.api_key = uuid();
此触发器将在将任何新行插入到 app_users 表中之前执行。对于每一行,它将 api_key 列的值设置为 UUID。这确保每个新行都有唯一的 api_key 值。
以上是MySQL列可以使用函数作为默认值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!