在MySQL中使用主键复制行的事务安全,复制安全方法?

时间:2012-08-27 21:08:09

标签: mysql innodb

我在MySQL中使用InnoDB表。应用程序是在PHP中,但理想情况下,这将通过查询完成。我有几个表与典型的整数auto_increment主键。有时我需要复制行,但如果没有新的主键值,我就无法做到这一点。如果我在查询中硬编码列列表,这将是微不足道的,但我想避免这种情况。我编写了使用临时表的代码,因此我可以在插入之前删除现有的主键值,但显然这不是复制安全的(并且MySQL 5.1文档在使用临时表时可能导致隐式提交的查询不一致)。

我基本上想要与INSERT IGNORE相反的概念。我想要一个新的主键值,而不是更新现有的行。如果没有硬编码列列表,有没有合理的方法呢?

编辑:我应该澄清主键不会是唯一需要修改的列。通常会有一个引用不同记录类型的ID。总体目标是复制现有记录并将其附加到不同的父记录。我的冲动是复制记录,然后在第二个查询中进行任何其他更新。

0 个答案:

没有答案