Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在大表的每一行上插入不同的UUID_Mysql - Fatal编程技术网

Mysql 在大表的每一行上插入不同的UUID

Mysql 在大表的每一行上插入不同的UUID,mysql,Mysql,我有一个表,有大约80k行导入的数据。表结构如下: order_line_items - id - order_id - product_id - quantity - price - uuid 导入时,将导入订单id、产品id、数量和价格,但uuid字段保留为空 有没有办法使用mysql的UUID()函数将UUID批量添加到表的每一行?我可以使用脚本在每一行中循环并更新它,但如果有MySQL解决方案,这将是最快的。对uuid()的每次调用都

我有一个表,有大约80k行导入的数据。表结构如下:

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(他们应该是不同的)

  • MySQL/MariaDB。问题被标记;确保您正在运行MySQL或MariaDB,因为另一个DBMS可能不会在多行上为UUID()呈现MySQL行为

  • 执行
    更新
    ,如图所示,
    UUID()
    是一个MySQL函数(因此
    ()

  • 检查接收更新的字段,它必须足够大以容纳
    36
    字符


  • 另请参见DBA SE上的内容。

    它为所有记录插入相同的uuid。@klendi-MySQL/MariaDB/Aurora的哪个版本?向我们展示整个SQL语句。它是否在存储的例程中?我得到了不同的值;我们有什么不同之处?请参阅我在《我有一个问题的再现》中的答案,该问题是使用docker compose,通过
    UPDATE
    导致所有UUID相同,这里:(还有一个视频)。我注意到,如果我在数据库完成初始化(而不是作为设置的一部分)后执行更新,那么UUID是不同的-我认为这是一个性能问题,因为我观察到高性能RDS数据库的问题,但不是在本地慢速机器上的测试中。请注意,使用这种方法,UUID中只有几个字符发生了变化,这使它们看起来一模一样,但实际上它们都是不同的。我花了整整15分钟的时间认为这是失败的,而实际上这是可行的。我不知道这是否也在吸引其他人。