MySQL 从一个表 Insert 到另一张表
1. 引言
在数据处理和数据库管理中,经常会遇到需要将一个表中的数据插入到另外一张表中的情况。MySQL 是一种开源的关系型数据库管理系统,提供了强大的数据操作功能,本文将详细介绍从一个表 table1
插入数据到另外一张表 table2
的方法。
2. 创建表
首先需要创建两张表 table1
和 table2
,以便进行数据的插入和操作。
2.1 创建 table1
CREATE TABLE `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.2 创建 table2
CREATE TABLE `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. 插入数据
接下来,我们将介绍不同的方法将 table1
中的数据插入到 table2
中。
3.1 使用 INSERT INTO SELECT 语句
可以使用 INSERT INTO SELECT
语句将 table1
中的数据插入到 table2
中。
INSERT INTO table2 (name, age)
SELECT name, age FROM table1;
运行以上语句后,table1
中的数据将被插入到 table2
中。
3.2 使用 INSERT INTO VALUES 语句
另一种常见的方法是使用 INSERT INTO VALUES
语句逐行插入数据。
INSERT INTO table2 (name, age)
VALUES ('John', 25),
('Alice', 30),
('Bob', 35);
运行以上语句后,给定的数据将逐行插入到 table2
中。
3.3 使用 INSERT IGNORE INTO VALUES 语句
如果希望插入数据时忽略已存在的主键冲突,可以使用 INSERT IGNORE INTO VALUES
语句。
INSERT IGNORE INTO table2 (name, age)
VALUES ('John', 25),
('Alice', 30),
('Bob', 35);
运行以上语句后,如果某行的主键与 table2
中的数据冲突,则会被忽略。
4. 结论
通过本文的介绍,我们了解了如何将一个表中的数据插入到另外一张表中。MySQL 提供了多种灵活的插入数据的方式,开发者可以根据需求选择适合的方式进行操作。