【发布时间】:2010-01-18 01:40:09
【问题描述】:
我有一个 Mysql 表,它有一个自动递增的主键(称为 pkey),我想克隆一行,保持所有数据相同,除了应该成为下一个可用值的主键由自动增量定义。
我的第一个问题是,下面的查询可能吗?
UPDATE `table` SET pkey='next_available_primary_key' WHERE pkey='old_primary_key'
如果尝试过
UPDATE `table` SET pkey=null WHERE pkey='old_primary_key'
但它只将主键的值设置为零。提前感谢您的任何帮助/建议。
更新:
我想我应该补充一点,我真的不想要表中数据的两个副本。我只想更改主键。因此,如果我要使用 INSERT SELECT 我将不得不使用 ON DUPLICATE KEY UPDATE pkey='next_available_primary_key' 来补偿我只是不知道该怎么做......
【问题讨论】:
-
出于好奇:您的目标是什么?因为您可能会误用主键来实现某些非预期目标(例如排序数据)。