小编Ric*_*ard的帖子

MySql Insert选择uuid()

假设你有一张桌子:

`item`
Run Code Online (Sandbox Code Playgroud)

有字段:

`id` VARCHAR( 36 ) NOT NULL
,`order` BIGINT UNSIGNED NOT NULL
Run Code Online (Sandbox Code Playgroud)

和:

Unique(`id`)
Run Code Online (Sandbox Code Playgroud)

你打电话给:

INSERT INTO `item` (
`item`.`id`,`item`.`order`
) SELECT uuid(), `item`.`order`+1
Run Code Online (Sandbox Code Playgroud)

MySql将在所有新创建的行中插入相同的uuid.

所以,如果你开始:

aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa, 0
bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb, 1
Run Code Online (Sandbox Code Playgroud)

你最终得到:

aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa, 0
bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb, 1
cccccccc-cccc-cccc-cccc-cccccccccccc, 1
cccccccc-cccc-cccc-cccc-cccccccccccc, 2
Run Code Online (Sandbox Code Playgroud)

如何命令MySql为每一行创建不同的uuid?

我知道以下在MSSQL中按预期工作:

INSERT INTO item (
id,[order]
) SELECT newid(), [order]+1
Run Code Online (Sandbox Code Playgroud)

nb我知道我可以选择结果,循环遍历它们并为我的PHP代码中的每一行发出一个单独的INSERT命令,但我不想那样做.我希望在数据库服务器上完成工作.

mysql uuid insert-select

8
推荐指数
2
解决办法
5万
查看次数

标签 统计

insert-select ×1

mysql ×1

uuid ×1