mysql中insert插入多行
时间: 2024-10-13 17:11:56 浏览: 73
在MySQL中,如果你想一次性插入多行数据,可以使用`INSERT INTO ... VALUES`语句配合数组或者表的形式。有两种常见的方法:
1. **使用`VALUES`列表**:
如果你要插入的数据是定长的,可以直接列出每个值作为逗号分隔的一组。例如:
```sql
INSERT INTO table_name (column1, column2, column3)
VALUES
('value1', 'value2', 'value3'),
('value4', 'value5', 'value6');
```
2. **使用`VALUES`函数结合数组**:
对于不定长度的值,可以创建临时表或直接在`VALUES`里使用`FIND_IN_SET()`等函数。但这通常用于较复杂的场景,如从用户输入动态生成的数据:
```sql
INSERT INTO table_name (column1, column2, column3)
SELECT * FROM (
SELECT 'value1', 'value2', 'value3' AS row_data UNION ALL
SELECT 'value4', 'value5', 'value6'
) temp_table;
```
3. **使用预处理语句(PreparedStatement)批量插入**:
这种方式适用于大量数据,通过参数化查询提高性能并防止SQL注入攻击:
```sql
SET @row = 0;
DO
WHILE @row < 5
BEGIN
SET @row = @row + 1;
PREPARE stmt FROM CONCAT('INSERT INTO table_name VALUES (?, ?, ?)', @row);
SET @val1 = 'value', @val2 = 'another_value', @val3 = 'yet_another';
EXECUTE stmt USING @val1, @val2, @val3;
DEALLOCATE PREPARE stmt;
END WHILE;
```
阅读全文