Skip to main content

MySQL通过实例插入多行

MySQL INSERT多行语句

要在表中插入多行,请使用以下形式的insert语句:

INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),
...
(value_list_n);

在这种语法中:

MySQL插入多行限制

理论上,可以使用单个insert语句插入任意数量的行。然而,当MySQL服务器收到INSERT语句的大小大于max_allowed_packet时,它会发出一个packet over large错误并终止连接。

此语句显示maxallowed数据包变量的当前值:

SHOW VARIABLES LIKE 'max_allowed_packet';

下面是MySQL数据库服务器上的输出。请注意,服务器中的值可能不同。

数字是数值列是字节数。

要为max_allowed_packet变量设置新值,请使用以下语句:

SET GLOBAL max_allowed_packet=size;

其中,size是一个整数,表示允许的最大数据包大小的字节数。

请注意,maxallowed数据包对插入没有影响。。选择语句。插入。。SELECT语句可以插入任意多行。

MySQL插入多行示例

让我们以使用INSERT multiple rows语句为例。

首先,为演示创建一个名为projects的新表:

CREATE TABLE projects(
project_id INT AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
start_date DATE,
end_date DATE,
PRIMARY KEY(project_id)
);

其次,使用INSERT multiple rows语句在projects表中插入两行:

INSERT INTO 
projects(name, start_date, end_date)
VALUES
('AI for Marketing','2019-08-01','2019-12-31'),
('ML for Sales','2019-05-15','2019-11-20');

MySQL发布了以下消息:

2 row(s) affected

这意味着两行已成功插入到projects表中。

请注意,当插入多行并使用LAST_insert_ID()函数获取自动增量列的最后一个插入ID时,将只获取第一个插入行的ID,而不是最后一个插入行的ID。

第三,使用以下SELECT语句验证插入:

SELECT * FROM projects;

此图显示了输出:

MySQL Insert multiple rows example

在本教程中,您学习了如何使用MySQL INSERT语句将多行插入表中。