在没有列列表的情况下将行复制到同一个 MySQL 表中
在 MySQL 中,可能会遇到错误“重复条目 'xxx' for key 1” " 当尝试将行插入已包含相同主键值的表中时。这是因为 MySQL 强制主键使用唯一值。
为了解决此问题,同时避免手动列出所有列,存在一个更简单的方法:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
通过将临时表中的主键设置为NULL, MySQL 可以在将行插入主表时自动生成一个新的唯一值,从而避免重复条目错误。
为了增加保证,请考虑在 INSERT INTO 行的末尾添加 LIMIT 1 子句确保只插入一行。
以上是如何在不列出列的情况下将重复行插入 MySQL 表中?的详细内容。更多信息请关注PHP中文网其他相关文章!