首页  >  文章  >  数据库  >  如何在 MySQL 中复制行而不出现重复条目​​错误?

如何在 MySQL 中复制行而不出现重复条目​​错误?

Barbara Streisand
Barbara Streisand原创
2024-11-14 21:50:02779浏览

How to Duplicate Rows in MySQL Without a Duplicate Entry Error?

在 MySQL 中复制行:替代解决方案

尝试使用查询在同一个 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;

说明:

  1. 创建临时表 (tmptable_1) 并填充所需的内容要重复的行。
  2. 临时表中的主键列设置为 NULL。这允许 MySQL 自动分配唯一值,避免任何键重复。
  3. 临时表中的行将插入到原始表中。
  4. 然后删除临时表。

通过将主键设置为 NULL,可以消除创建重复条目的风险。此外,在 INSERT INTO 语句末尾添加 LIMIT 1 可确保仅插入一行。

将主键值附加到临时表名称是一种预防措施,以避免在插入多行时出现潜在冲突。同时复制。

以上是如何在 MySQL 中复制行而不出现重复条目​​错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn