mysql如何获得刚插入行的id字段

billjyc1_h4u 发布于 2013/11/19 23:34
阅读 6K+
收藏 0

RT,假设有两张表question(qid,title,content)(qid为自增字段)和question_type(qid,type),现在刚刚向question表插入一行新内容

insert into question (title,content) values ('dkadflkfad','eilsdkfjasels');

后同时更新question_type中的内容,请问如何获取刚刚插入的qid并且在question_type中添加相应内容?

加载中
0
Debugerman
Debugerman
用PreparedStatement,执行完调用getGeneratedKeys()即可。
0
名字不能超过十个字
名字不能超过十个字
可以用触发器,NEW.qid
0
喂码呢
喂码呢

mysql_insert_id()函数可以用于获取上次查询产生的ID.

http://us3.php.net/manual/en/function.mysql-insert-id.php

0
张亦俊
张亦俊

引用来自“喂马”的答案

mysql_insert_id()函数可以用于获取上次查询产生的ID.

http://us3.php.net/manual/en/function.mysql-insert-id.php

虽然我不懂MySQL,但是这个以前听别人说起过是要小心的。

在并发环境下,如果有两条INSERT同时发生的话,这个貌似会返回后一条的值。

0
喂码呢
喂码呢

引用来自“张亦俊”的答案

引用来自“喂马”的答案

mysql_insert_id()函数可以用于获取上次查询产生的ID.

http://us3.php.net/manual/en/function.mysql-insert-id.php

虽然我不懂MySQL,但是这个以前听别人说起过是要小心的。

在并发环境下,如果有两条INSERT同时发生的话,这个貌似会返回后一条的值。

在多线程环境下可能会有问题
0
呼啦_小呆
呼啦_小呆

引用来自“喂马”的答案

引用来自“张亦俊”的答案

引用来自“喂马”的答案

mysql_insert_id()函数可以用于获取上次查询产生的ID.

http://us3.php.net/manual/en/function.mysql-insert-id.php

虽然我不懂MySQL,但是这个以前听别人说起过是要小心的。

在并发环境下,如果有两条INSERT同时发生的话,这个貌似会返回后一条的值。

在多线程环境下可能会有问题
LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update*作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加 锁。使用单INSERT语句插入多条记录, LAST_INSERT_ID返回一个列表。
lfl
lfl
我是这样用的
返回顶部
顶部