テーブルがあるとします:
`item`
フィールドあり:
`id` VARCHAR( 36 ) NOT NULL
,`order` BIGINT UNSIGNED NOT NULL
と:
Unique(`id`)
そして、次のように呼び出します。
INSERT INTO `item` (
`item`.`id`,`item`.`order`
) SELECT uuid(), `item`.`order`+1
MySql は、新しく作成されたすべての行に同じ uuid を挿入します。
したがって、次から始める場合:
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa, 0
bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb, 1
最終的には次のようになります。
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa, 0
bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb, 1
cccccccc-cccc-cccc-cccc-cccccccccccc, 1
cccccccc-cccc-cccc-cccc-cccccccccccc, 2
行ごとに異なる uuid を作成するように MySql に指示するにはどうすればよいですか?
私は、MSSQL で次のことが期待どおりに機能することを知っています。
INSERT INTO item (
id,[order]
) SELECT newid(), [order]+1
結果を SELECT し、それらをループして、PHP コードから行ごとに個別の INSERT コマンドを発行できることはわかっていますが、そうしたくありません。作業が行われるはずのデータベースサーバーで作業を行いたいです。