• ベストアンサー

SQLのキーの取り扱いについて

LinuxでMySQLの4.0.20を使っています。 auto_numberを用いたインサートを行った場合、通常デフォルトでも 自動的にオートナンバーが割り当てられるが、それを重複しないキーとして 使っているのですが、さきほど登録したオートナンバーを取得することは可能でしょうか? 最後に登録されたオート番号を取得するスマートな方法が知りたいです。 Aがauto_number testテーブル A B C 1 あ 10 2 い 20 3 う 30 この表を見れば、次の自体は4であろうと想像できるが、データを追加した直後に そのオートナンバーが何かわかる方法があれば知りたいです。 通常インサートする場合は固有のキーも追加するので、わざわざ取得するまでもないですが、特定できるキーがオートナンバーなので、それを取得する方法が知りたいです。 select max(A) from test; で取得すれば良いのでしょうか? ※4.1.4ではujisで日本語を追加しようとしてもうまくいきませんでした。バグが直ってなさそうです。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

LAST_INSERT_ID関数で、そのコネクション内で最後にAUTO_INCREMENTフィールドに生成されたIDが取得できます。 例 ----------------------------------------------- SELECT LAST_INSERT_ID(); --------------------------------------------------

参考URL:
http://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_Reference.html#IDX1347

その他の回答 (1)

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

それでいいと思います。 select count(*) from test; か select max(A) from test; でよろしいかと。

関連するQ&A