所以我一直在做一些挖掘,我一直在努力拼凑一个在PHP中生成有效的v4 UUID的函数.这是我能够来的最接近的.我在十六进制,十进制,二进制,PHP的按位运算符等方面的知识几乎不存在.此函数生成有效的v4 UUID直到一个区域.v4 UUID应采用以下形式:
xxxxxxxx-xxxx- 4 xxx- y xxx-xxxxxxxxxxxx
其中y 是8,9,A或B.这是函数失败的地方,因为它不符合它.
我希望在这个领域有比我更多知识的人可以帮助我解决这个问题并帮助我解决这个问题.
功能如下:
<?php
function gen_uuid() {
$uuid = array(
'time_low' => 0,
'time_mid' => 0,
'time_hi' => 0,
'clock_seq_hi' => 0,
'clock_seq_low' => 0,
'node' => array()
);
$uuid['time_low'] = mt_rand(0, 0xffff) + (mt_rand(0, 0xffff) << 16);
$uuid['time_mid'] = mt_rand(0, 0xffff);
$uuid['time_hi'] = (4 << 12) | (mt_rand(0, 0x1000));
$uuid['clock_seq_hi'] = (1 << 7) | (mt_rand(0, 128));
$uuid['clock_seq_low'] = mt_rand(0, 255);
for ($i = 0; $i < 6; …Run Code Online (Sandbox Code Playgroud) 我有一个表〜约80k行与导入数据.表结构如下:
order_line_items
- id
- order_id
- product_id
- quantity
- price
- uuid
Run Code Online (Sandbox Code Playgroud)
导入时,导入了order_id,product_id,数量和价格,但uuid字段保留为null.
有没有办法,使用mysql的UUID()函数,批量添加uuid到表的每一行?我可以使用脚本循环遍历每一行并更新它,但如果有MySQL解决方案,那将是最快的.