Mysql 在大表的每一行上插入不同的UUID
我有一个表,有大约80k行导入的数据。表结构如下:Mysql 在大表的每一行上插入不同的UUID,mysql,Mysql,我有一个表,有大约80k行导入的数据。表结构如下: order_line_items - id - order_id - product_id - quantity - price - uuid 导入时,将导入订单id、产品id、数量和价格,但uuid字段保留为空 有没有办法使用mysql的UUID()函数将UUID批量添加到表的每一行?我可以使用脚本在每一行中循环并更新它,但如果有MySQL解决方案,这将是最快的。对uuid()的每次调用都
order_line_items
- id
- order_id
- product_id
- quantity
- price
- uuid
导入时,将导入订单id、产品id、数量和价格,但uuid字段保留为空
有没有办法使用mysql的UUID()函数将UUID批量添加到表的每一行?我可以使用脚本在每一行中循环并更新它,但如果有MySQL解决方案,这将是最快的。对uuid()
的每次调用都返回一个不同的、唯一的值
这么简单
UPDATE order_line_items SET uuid = uuid();
应为每个uuid
字段分配唯一值
2020年6月编辑 通过@RickJames(参见注释),我们试图理解一些人如何在运行上面的
Update
命令后获得相同的UUID(他们应该是不同的)
更新
,如图所示,UUID()
是一个MySQL函数(因此()
)36
字符另请参见DBA SE上的内容。它为所有记录插入相同的uuid。@klendi-MySQL/MariaDB/Aurora的哪个版本?向我们展示整个SQL语句。它是否在存储的例程中?我得到了不同的值;我们有什么不同之处?请参阅我在《我有一个问题的再现》中的答案,该问题是使用docker compose,通过
UPDATE
导致所有UUID相同,这里:(还有一个视频)。我注意到,如果我在数据库完成初始化(而不是作为设置的一部分)后执行更新,那么UUID是不同的-我认为这是一个性能问题,因为我观察到高性能RDS数据库的问题,但不是在本地慢速机器上的测试中。请注意,使用这种方法,UUID中只有几个字符发生了变化,这使它们看起来一模一样,但实际上它们都是不同的。我花了整整15分钟的时间认为这是失败的,而实际上这是可行的。我不知道这是否也在吸引其他人。