在MySQL中,我尝试使用autoincrement column ID=1
复制一行,并使用 column ID=2
将数据插入到与新行相同的表中。
我如何在一个查询中做到这一点?
发布于 2012-02-06 14:31:27
使用INSERT ... SELECT
insert into your_table (c1, c2, ...)
select c1, c2, ...
from your_table
where id = 1
其中,c1, c2, ...
是除id
之外的所有列。如果要显式插入时id
为2,则将其包括在插入列列表和SELECT中:
insert into your_table (id, c1, c2, ...)
select 2, c1, c2, ...
from your_table
where id = 1
当然,在第二种情况下,您必须注意可能重复的id
2。
发布于 2012-10-12 14:53:33
在IMO中,最好只使用SQL语句来复制该行,同时只引用您必须和想要更改的列。
CREATE TEMPORARY TABLE temp_table ENGINE=MEMORY
SELECT * FROM your_table WHERE id=1;
UPDATE temp_table SET id=0; /* Update other values at will. */
INSERT INTO your_table SELECT * FROM temp_table;
DROP TABLE temp_table;
另请参阅av8n.com - How to Clone an SQL Record
好处:
your_table
中。发布于 2012-02-06 14:33:03
假设表是user(id, user_name, user_email)
。
您可以使用以下查询:
INSERT INTO user (SELECT NULL,user_name, user_email FROM user WHERE id = 1)
https://stackoverflow.com/questions/9156340
复制相似问题