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

Barbara Streisand
发布: 2024-11-14 21:50:02
原创
777 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板