mysql - 在 MySQL 中复制行

标签 mysql sql

我想复制一行的所有列,但不必指定每一列。我知道 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/

相关文章:

sql - 有没有办法在 MySQL 中选择最大行 id,而无需使用 MAX() 扫描所有行?

MySQL - 这个查询有什么问题?

php - 使用 PHP/SQL,如何存储和检索彼此堆叠/嵌套的评论?

sql - 将一列复制到另一列中以获取SQL Server数据库中超过十亿行的数据

php - 将 $_GET 传递给脚本 (AJAX)

带有 WHERE id IN (SELECT ...) 的 mysqldump 产生表 "was not locked"错误

mysql - 如何在 Windows Server 2012 上禁用 MySQL 5.6.14 的警告?

sql - DATEPART 修复日期

c# - 即使分配了 null,sql 也不会返回值

php - MySQL 头痛,我应该还是不应该?