[前][次][番号順一覧][スレッド一覧]

mysql:2277

From: (moeru) <<moeru@xxxxxxxxxx>>
Date: Tue, 18 Jul 2000 23:20:06 +0900
Subject: [mysql 02277] LAST_INSERT_ID()


モエルです。
いつもお世話になっておりますm(__)m


LAST_INSERT_ID()について教えてください。


やりたい事なんですけど

★データーベース内でIDを一意にしたいです。

CREATE TABLE item (
   itemid int(20) DEFAULT '0' NOT NULL auto_increment,

とauto_increment属性を付けているとき
例えば、itemidが50のデータを削除、もしくは他のテーブルにバックアップした場合
次にitemテーブルにデータを登録したときのitemidを51にしたいのです。

これは、LAST_INSERT_ID()を使えばいいと言うことでしょうか?


$lastitemid = mysql_insert_id();
とか
$lastitemid = "SELECT LAST_INSERT_ID() FROM item";
を試したのですが
0が返ってきます。

マニュアルの、E.1.7 Changes in release 3.23.15に
Fixed problems in update log when using LAST_INSERT_ID() to update a table with an
auto_increment key.
とありました。

今、3.22.32を使ってるのですが、
3.22.32だと、LAST_INSERT_ID()がうまく動いていないでしょうか?

LAST_INSERT_ID()は、auto_incrementで自動生成された最後の値を返すって書いてありますが
この値は、更新ログ(hostname.001)を見てるのでしょうか?

更新ログには、set last_insert_id=50;
が記録されています。。

ヴァージョンUPが必要でしょうか?

アドバイス宜しくお願いしますm(__)m


*MySQLのオンラインマニュアルですが、検索機能があると嬉しいです(^^;


モエル


[前][次][番号順一覧][スレッド一覧]

->    2277 2000-07-18 23:20 [<moeru@xxxxxxxxxx>  ] LAST_INSERT_ID()                        
      2278 2000-07-18 23:47 ┗[とみたまさひろ <tomm]                                       
      2279 2000-07-19 00:10  ┗[<moeru@xxxxxxxxxx>  ]