MySQL - 如果列为 NULL,则生成随机唯一代码

MySQL - Generate random unique code if column is NULL

我有一个名为 unique_id 的 table 列,默认设置为 NULL

我如何 "create a patch" 和改变 table 所以当 unique_idNULL 时生成随机代码(包含像这样的 EE7B35CB25D24E34D7B5DE2A)

ALTER TABLE `projects`
CHANGE `unique_id` char('24') = RAND()
COLLATE 'latin1_swedish_ci' NULL 
AFTER `status`;

我看到的唯一方法(因为您需要一个唯一的 random 编号)是使用 BEFORE INSERT 触发器。检查 NULL 并可能使用 RAND() 函数用随机数更新列。

无法将 RAND()DEFAULT 一起使用,因为 DEFAULT 期望参数是静态/常量而不是任何表达式(考虑制作指针,如果这涉及到您考虑作为可能的解决方案)。