mysql_insert_id的疑義

來源:互聯網
上載者:User
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
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.