尝试使用查询在同一个 MySQL 表中复制行时:
insert into table select * from table where primarykey=1
由于现有的主键约束,您可能会遇到重复输入错误。虽然可以使用临时表来规避此问题,但还有一个更简单的解决方案。
使用以下受 Leonard Challis 启发的修改技术:
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,可以消除创建重复条目的风险。此外,在 INSERT INTO 语句末尾添加 LIMIT 1 可确保仅插入一行。
将主键值附加到临时表名称是一种预防措施,以避免在插入多行时出现潜在冲突。同时复制。
以上是如何在 MySQL 中复制行而不出现重复条目错误?的详细内容。更多信息请关注PHP中文网其他相关文章!