在MySQL中,我试图复制一行自增量列ID=1,并将数据插入到相同的表中,作为列ID=2的新行。
如何在单个查询中做到这一点?
在MySQL中,我试图复制一行自增量列ID=1,并将数据插入到相同的表中,作为列ID=2的新行。
如何在单个查询中做到这一点?
当前回答
insert into MyTable(field1, field2, id_backup)
select field1, field2, uniqueId from MyTable where uniqueId = @Id;
其他回答
如果你能使用MySQL Workbench,你可以通过右键单击行并选择“复制行”,然后右键单击空行并选择“粘贴行”,然后更改ID,然后单击“应用”来做到这一点。
复制行:
将复制的行粘贴到空白行:
更改ID:
应用:
我正在寻找相同的功能,但我不使用MySQL。我想复制所有的字段,当然除了主键(id)。这是一次性查询,不能在任何脚本或代码中使用。
我找到了PL/SQL的方法,但我相信任何其他SQL IDE都可以做到。我做了一个基本的
SELECT *
FROM mytable
WHERE id=42;
然后将其导出到一个SQL文件,在那里我可以找到
INSERT INTO table (col1, col2, col3, ... , col42)
VALUES (1, 2, 3, ..., 42);
我只是编辑并使用它:
INSERT INTO table (col1, col2, col3, ... , col42)
VALUES (mysequence.nextval, 2, 3, ..., 42);
试试这个:
INSERT INTO test_table (SELECT null,txt FROM test_table)
每次运行此查询时,这将再次插入所有具有新id的行。值将呈指数增长。
我使用了一个有两列的表,即id和txt, id是自动递增的。
转储您想要sql的行,然后使用生成的sql,减去ID列,将其导入。
假设表是user(id, user_name, user_email)。
你可以使用这个查询:
INSERT INTO user (SELECT NULL,user_name, user_email FROM user WHERE id = 1)