【发布时间】:2020-09-22 05:56:15
【问题描述】:
我正在尝试向 MySql 8.0.17 中的现有表添加一列。该列需要包含 UUID,我正在尝试将其设置为默认值。
这是我正在执行的语句
ALTER TABLE myTable ADD COLUMN UUID varchar(36) NOT NULL DEFAULT (UUID());
但是我收到以下错误
错误代码:1674。语句不安全,因为它使用的系统函数可能会在从站上返回不同的值。
我从其他帖子中读到可以在表上创建触发器,但是我想知道是否可以直接将其设置为列上的默认值。
另外,与简单的 UUID 相比,使用 UUID 的二进制转换有什么优势?
例如。
ALTER TABLE myTable ADD COLUMN UUID binary(16) NOT NULL DEFAULT (UUID_TO_BIN(UUID(), true));
感谢您的帮助。
【问题讨论】: