テーブルAにデータをinsertした際に、割り振られるIDを取得したいと思っています。IDはauto_incrementにしているintです。
用途は、データを登録した後に、そのデータの詳細ページへのリダイレクトをさせるために、IDを使います。
登録前にシーケンスから割り振られるであろうIDを取得することを考えましたが、ほぼ同時に登録があった場合に大丈夫なのか心配です。
どうすればいいのでしょうか?
横から失礼いたします。
MySQLのMLにて、似たようなやり取りがありました。
またマニュアルにも以下のような記述があります。
最後に生成された ID は、接続ごとにサーバに保持されます。他の接続を使用するクライアントによって変更されることはありません。
参考になれば幸いです。
mysql_insert_idという関数で
直前にINSERTされたIDを取得できますよ。
ありがとうございます。
インサート;
mysql_insert_idをselect;
でこの行の間に他の人が登録していないかどうかは何かロックをかけたりしなくてもいいのでしょうか?
横から失礼いたします。
MySQLのMLにて、似たようなやり取りがありました。
またマニュアルにも以下のような記述があります。
最後に生成された ID は、接続ごとにサーバに保持されます。他の接続を使用するクライアントによって変更されることはありません。
参考になれば幸いです。
まさしく同じ悩みだったので、とてもためになりました。
とても納得できました
自動で番号を割り振る場合の動作について解説が
以下のURLにあります。
接続毎に管理していので同時に処理しても大丈夫
LAST_INSERT_IDの解説
http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.h...
auto_incrementを定義注意点
http://dev.mysql.com/doc/refman/4.1/ja/example-auto-increment.ht...
ありがとうございました。
まさしく同じ悩みだったので、とてもためになりました。
とても納得できました