社区
MySQL
帖子详情
为什么SELECT LAST_INSERT_ID();返回是0?
susdj
2004-07-23 09:52:36
create table 123
(
no int(10) not null auto_increment
....
...全文
1590
3
打赏
收藏
为什么SELECT LAST_INSERT_ID();返回是0?
create table 123 ( no int(10) not null auto_increment ....
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yang2004
2004-07-24
打赏
举报
回复
支持樓上兩位的觀點.
trampwind
2004-07-23
打赏
举报
回复
在一次会话中如果没又插入任何记录的话,这个查询返回的应该就是0
loveflea
2004-07-23
打赏
举报
回复
你要在插入记录之后,调用 last_insert_id() 才会有结果!
mysql> desc article;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| title | varchar(255) | | | | |
| content | text | | | | |
| author | varchar(20) | | | | |
| email | varchar(30) | | | | |
| date | varchar(40) | | | | |
+---------+--------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)
mysql> desc article;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| title | varchar(255) | | | | |
| content | text | | | | |
| author | varchar(20) | | | | |
| email | varchar(30) | | | | |
| date | varchar(40) | | | | |
+---------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
mysql> insert into article(title) values('hava a test!!!');
Query OK, 1 row affected (0.16 sec)
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 1 |
+------------------+
1 row in set (0.03 sec)
mysql> insert into article(title) values('hava a test!!!');
Query OK, 1 row affected (0.00 sec)
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 2 |
+------------------+
1 row in set (0.00 sec)
Mybatis中
select
last_
insert
_
id
() -
返回
插入数据行的
id
大多数时候在Dao接口上我们会使用@Param注解定义入参,方便传递多个参数和设置别名,然而再通过record.get
Id
()获取插入数据行的
id
值时却为null?
select
last_
insert
_
id
()是否存在并发问题呐,如果有两个连接,它们几乎同时做了插入操作,然后分别进行了查插入
id
,此时会得到两个相同的
id
值么?注意:
select
last_
insert
_
id
()
返回
的
id
值封装在入参record中,通过record.get
Id
()获取,而不是
insert
方法的
返回
值!
MySQL -
SELECT
LAST_
INSERT
_
ID
() 使用总结
当一个页面中包含了多个表存储的时候,这时候需要有个主键进行更新其他表。比如:新增用户信息,但是 用户信息包含的一部分信息在其它表中,这时候你需要通过用户
id
来进行add,这时候你如果用普通的
insert
,只会
返回
0和1,这时候就需要用到这个函数了。 目录 函数介绍 举个例子 官方文档 LAST_
INSERT
_
ID
() LAST_
INSERT
_
ID
(expr) 函数介绍 SEL...
SELECT
LAST_
INSERT
_
ID
()
SELECT
LAST_
INSERT
_
ID
() 注意:通常情况下会出现使用一条
insert
操作数据库插入多行信息,但是这种情况下使用该函数只会
返回
插入的第一行的数据。
SELECT
LAST_
INSERT
_
ID
():获取刚最近一次
insert
数据的的主键值(此函数方法只适用与主键为自增的前提下) keyProperty:将查询到主键值设置到 parameterType 指定对象的属性 order:对比
insert
语句的该函数的执行顺序,可设置的值 Before 、After result...
mybatis
SELECT
LAST_
INSERT
_
ID
()总是
返回
1或者0
写代码的时候使用到了
SELECT
LAST_
INSERT
_
ID
(),发现每次
返回
的结果都是1,用PO取主键则每次都是0 public class ManagerPO { private int
id
; private String account; private String password; private String phone; private Strin...
SELECT
LAST_
INSERT
_
ID
() 的使用和注意事项
尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/71302441首先我先解释以下在在映射文件中的代码是什么意思。<
insert
id
="
insert
Student" parameterType="com.czd.mybatis01.bean.Student">
INSERT
stu(name)VALUES (#{
MySQL
56,914
社区成员
56,754
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章