MySQL INSERT INTO … SELECT 详细列举出需要插入数据的所有列

MySQL INSERT INTO … SELECT 详细列举出需要插入数据的所有列

在MySQL中,我们可以使用INSERT INTO … SELECT语句来将一个表中的数据插入到另一个表中。通常情况下,我们需要在INSERT INTO语句中详细列举出需要插入数据的所有列,这样比较麻烦。那么有没有一种方法可以在不列举所有列的情况下,将数据插入到另一个表中呢?当然有!下面我们来详细讲解一下。

阅读更多:MySQL 教程

原理

我们可以通过以下方式,将源表中的所有列插入到目标表中,而不需要逐一列举出所有列:

INSERT INTO `target_table` 
SELECT * FROM `source_table`;

其中,source_table是源表的名称,target_table是目标表的名称。

示例

假设我们有一个users表,包含了用户的基本信息:

CREATE TABLE `users` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(30) NOT NULL,
  `age` INT NOT NULL,
  `gender` CHAR(1) NOT NULL,
  `email` VARCHAR(50) NOT NULL,
  PRIMARY KEY (`id`)
);

现在我们要将users表中的所有数据插入到一个新表users_bak中。我们可以使用以下SQL语句:

INSERT INTO `users_bak`
SELECT * FROM `users`;

这个语句将会把users表中的所有数据插入到users_bak表中。

注意事项

  • 源表和目标表的列数据类型要保持一致;
  • 源表和目标表的列数要一致。

总结

通过使用MySQL的INSERT INTO … SELECT语句,我们可以非常方便地将一个表中的数据插入到另一个表中。通过使用上述方法,我们可以省去逐一列举所有列的麻烦,提高工作效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程