mysql_insert_id的疑問
CREATE TABLE `create_id` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '產生自增user_id',
`v` varchar(1) NOT NULL COMMENT '用於產生新的id',
PRIMARY KEY (`id`),
UNIQUE KEY `v` (`v`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
replace into `create_id` set `v`='1' ;
執行這條sql之後,用mysql_insert_id無法獲得insert id。有什麼方法/函數能獲得replace into產生的新id?
------解決方案--------------------
replace 指令可能產生,也可能不產生新的 id
所以擷取不到是正常的
那麼 有什麼方法/函數能獲得replace into產生的新id?
答案是沒有,但你可以指定 id
------解決方案--------------------
select LAST_INSERT_ID() as `id` from `create_id`;
與
select id from `create_id` order by id desc limit 1
不是一樣嗎?
------解決方案--------------------
引用:
select LAST_INSERT_ID() as `id` from `create_id`;
與
select id from `create_id` order by id desc limit 1
不是一樣嗎?
並發的情況下, order by id desc 可能就是別人的id了
LAST_INSERT_ID() 是在某個資料庫連接的範圍內嗎?
------解決方案--------------------
原來這樣也可以獲id,學習了
------解決方案--------------------
select id from tb order by id desc limit 1
------解決方案--------------------
引用:
select id from tb order by id desc limit 1
這個只可以擷取庫裡面的id吧?樓主是在插入資料的時候,要擷取當前id。
我用TP寫的:
$Form=M('member');
$sql="show table status where Name='fht_member'";
$rs=$Form->query($sql);
$Mid=$rs[0]['Auto_increment'];
返回記錄集有個['Auto_increment'],就是當前插入的自增id