MySQL中如何一次执行多条写好的插入命令
时间: 2024-09-20 10:16:26 浏览: 45
在MySQL中,一次性执行多条插入语句可以提高数据库操作的效率,避免频繁的网络往返。你可以使用`INSERT INTO ... VALUES`语句组或者预处理语句(如`PREPARE`和`EXECUTE`)来批量插入数据。以下是两种方法:
1. **手动分隔值** (如果所有行结构一致):
```sql
INSERT INTO table_name (column1, column2, column3)
VALUES
( value1_1, value1_2, value1_3 ),
( value2_1, value2_2, value2_3 ),
...;
```
确保每行的值都按照列的顺序排列。
2. **使用预处理语句** (适用于动态数据或复杂查询) :
首先创建一个预处理语句,然后多次绑定参数执行:
```sql
SET @sql = CONCAT('INSERT INTO table_name (column1, column2, column3) VALUES ',
GROUP_CONCAT(CONCAT('(', replace(@values, ',', '), ('), ')') SEPARATOR ';\n'));
SET @values = '';
DELIMITER ;;
CREATE TEMPORARY PROCEDURE insert_values()
BEGIN
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END;;
DELIMITER ;
CALL insert_values();
```
这里的`@values`变量需要先填充每一行的值,每个值之间用逗号 `,` 分隔。
无论哪种方法,记得在结束操作后关闭连接,以释放资源。
阅读全文