MySQL - 如果列为 NULL,则生成随机唯一代码
MySQL - Generate random unique code if column is NULL
我有一个名为 unique_id
的 table 列,默认设置为 NULL
。
我如何 "create a patch" 和改变 table 所以当 unique_id
是 NULL
时生成随机代码(包含像这样的 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
期望参数是静态/常量而不是任何表达式(考虑制作指针,如果这涉及到您考虑作为可能的解决方案)。
我有一个名为 unique_id
的 table 列,默认设置为 NULL
。
我如何 "create a patch" 和改变 table 所以当 unique_id
是 NULL
时生成随机代码(包含像这样的 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
期望参数是静态/常量而不是任何表达式(考虑制作指针,如果这涉及到您考虑作为可能的解决方案)。