ホームページ  >  記事  >  バックエンド開発  >  mysql_insert_id に関する疑問

mysql_insert_id に関する疑問

WBOY
WBOYオリジナル
2016-06-13 12:00:27849ブラウズ

mysql_insert_id に関する質問

<br />CREATE TABLE `create_id` (<br />  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '生成自增user_id',<br />  `v` varchar(1) NOT NULL COMMENT '用于生成新的id',<br />  PRIMARY KEY (`id`),<br />  UNIQUE KEY `v` (`v`)<br />) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;<br /><br />replace into `create_id` set `v`='1' ;<br />

この SQL を実行した後、mysql_insert_id を使用して挿入 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
と同じではないでしょうか?


同時実行の場合、ID desc による順序は他の人の ID である可能性があります
LAST_INSERT_ID() は特定のデータベース接続の範囲内ですか?
------解決策----------------------
この方法でもIDを取得できることが判明、そこから学びましょう
-----解決策---------
select id from tb order by id説明制限 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 です
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。