当前位置:  开发笔记 > 后端 > 正文

在MySQL中复制行

如何解决《在MySQL中复制行》经验,为你挑选了1个好方法。

我想复制一行的所有列,但不必指定每一列.我知道http://dev.mysql.com/doc/refman/5.1/en/insert-select.html上的语法,但我认为无法忽略列.

对于我的示例,我试图将行的所有列复制到新行,但主键除外.

有没有办法做到这一点,而不必写入查询与其中的每个字段?



1> 小智..:

如果您的id主键列是主键,则auto_increment可以使用临时表:

CREATE TEMPORARY TABLE temp_table 
AS 
SELECT * FROM source_table WHERE id='7'; 
UPDATE temp_table SET id='100' WHERE id='7';
INSERT INTO source_table SELECT * FROM temp_table;
DROP TEMPORARY TABLE temp_table;

因此,通过这种方式,您可以复制行id ='7'中的所有数据,然后分配新值'100'(或者任何值超出source_table中当前auto_increment值的范围).

编辑:记住; 在陈述之后:)


将`id`设置为零也有效.在`INSERT`中,插入一个值为'0`的`auto_increment`列,作为下一个值应该是什么.
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有