mysql添加数据返回主键
时间: 2023-07-25 16:37:52 浏览: 136
当你向 MySQL 数据库中插入一条新数据时,可以使用 `LAST_INSERT_ID()` 函数获取新插入数据的主键值。这个函数会返回上一次插入操作中生成的 `AUTO_INCREMENT` 主键值。
例如,你可以执行以下 SQL 语句插入一条新数据,并返回自动生成的主键值:
```
INSERT INTO my_table (column1, column2, column3) VALUES ('value1', 'value2', 'value3');
SELECT LAST_INSERT_ID();
```
这个查询会返回一个单行单列的结果集,其中包含新插入数据的主键值。
相关问题
mybatis 添加数据返回主键
MyBatis在3.3.1版本开始支持批量添加记录并返回各记录的主键字段值。对于单一记录的添加,可以通过以下两种方法获取主键值。
方法一:在添加单一记录时返回主键ID。可以使用MyBatis的`useGeneratedKeys`和`keyProperty`属性来实现。`useGeneratedKeys`属性设置为`true`,`keyProperty`属性设置为主键对应的字段名,这样在插入数据后,可以通过获取该字段的值来获得主键ID。
方法二:使用MySQL的`LAST_INSERT_ID()`函数。在插入数据后,可以通过调用`SELECT LAST_INSERT_ID()`来获取插入数据的主键值。
对于批量添加记录时获取各记录的主键值,也可以通过上述方法之一来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [使用技巧之——MyBatis如何返回插入主键](https://blog.csdn.net/Java0258/article/details/106528589)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [【MyBatis】通过MyBatis向MySQL插入数据并返回主键](https://blog.csdn.net/weixin_45953673/article/details/128699059)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
mysql 批量插入数据 并返回他们的主键
在 MySQL 中批量插入数据并返回主键值有多种方法,其中一种常用的方法是使用 `INSERT INTO ... VALUES (),(),()...` 语法结构。具体步骤如下:
1. 构造批量插入语句,例如:
```
INSERT INTO my_table (column1, column2, column3) VALUES
('value1', 'value2', 'value3'),
('value4', 'value5', 'value6'),
('value7', 'value8', 'value9');
```
2. 执行批量插入语句。
3. 使用 `LAST_INSERT_ID()` 函数获取最后插入的主键值。由于 `LAST_INSERT_ID()` 函数只能返回一个主键值,因此需要使用 `SELECT` 语句和 `UNION` 连接多个查询来获取每个插入的主键值。
以下是一个示例 SQL 语句,可以在插入数据时返回每个插入数据的主键值:
```
INSERT INTO my_table (column1, column2, column3) VALUES
('value1', 'value2', 'value3'),
('value4', 'value5', 'value6'),
('value7', 'value8', 'value9');
SELECT LAST_INSERT_ID() UNION ALL
SELECT LAST_INSERT_ID() - 1 UNION ALL
SELECT LAST_INSERT_ID() - 2;
```
这个查询会返回一个多行单列的结果集,其中包含每个插入数据的主键值。
阅读全文