gpt4 book ai didi

mysql - 在 MySQL 中,我可以复制一行插入到同一个表中吗?

转载 作者:IT老高 更新时间:2023-10-28 12:49:33 26 4
gpt4 key购买 nike

insert into table select * from table where primarykey=1

我只想复制一行以插入到同一个表中(即,我想复制表中的现有行)但我想这样做而不必在“选择”之后列出所有列,因为此表的列太多。

但是当我这样做时,我得到了错误:

Duplicate entry 'xxx' for key 1

我可以通过创建另一个表来处理这个问题,该表具有与我要复制的记录的临时容器相同的列:

create table oldtable_temp like oldtable;
insert into oldtable_temp select * from oldtable where key=1;
update oldtable_tem set key=2;
insert into oldtable select * from oldtable where key=2;

有没有更简单的方法来解决这个问题?

最佳答案

我使用了 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 允许 MySQL 自行选择值,因此不存在创建重复项的风险。

如果您想确保只插入一行,可以将 LIMIT 1 添加到 INSERT INTO 行的末尾。

请注意,我还将主键值(在本例中为 1)附加到我的临时表名称中。

关于mysql - 在 MySQL 中,我可以复制一行插入到同一个表中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com