mysql批量插入主键回填
时间: 2024-08-26 13:00:56 浏览: 89
mybatis 批量插入返回主键
在MySQL中,当你使用`INSERT INTO`语句一次性插入多行数据时,如果没有明确指定每一行的主键值,系统通常会自动为新插入的数据生成唯一的主键ID,这个过程叫做“主键自增”或“自动增长”。如果你希望在插入时就设置特定的主键值,而不是让其自动增长,可以采用以下几种方法:
1. **手动设置**:对于InnoDB存储引擎,你可以使用`LAST_INSERT_ID()`函数获取上一条插入操作的主键值,并将其赋给新的一行。例如:
```sql
SET @last_id = LAST_INSERT_ID();
INSERT INTO your_table (id_column, other_columns) VALUES (@last_id, 'value1', 'value2');
```
2. **使用预处理语句**:如果是在PHP等支持预处理语句的语言中,可以先插入一行记录只为了得到主键,然后使用这个主键进行批量插入:
```php
$stmt = $pdo->prepare("INSERT INTO your_table (other_columns) VALUES (:values)");
$stmt->execute(['values' => ['value1', 'value2']]);
$last_id = $pdo->lastInsertId();
// 然后用$last_id作为主键插入其他行
```
阅读全文