我想复制一行的所有列,但不必指定每一列。我知道 http://dev.mysql.com/doc/refman/5.1/en/insert-select.html 的语法但我认为无法忽略列。
对于我的示例,我尝试将行的所有列复制到新行,但主键除外。
有没有办法做到这一点,而不必编写包含每个字段的查询?
最佳答案
如果您的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 值范围的任何值)。
编辑:注意;在声明之后:)
关于mysql - 在 MySQL 中复制行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/229998/