• ベストアンサー

auto_incrementフィールドの書込み内容を知る方法

auto_incrementの属性を持つフィールド(以後、id)を含むテーブルへ、書込みを行った場合、idフィールドには空番号が自動で付与されて書き込まれると思いますが、書き込まれた番号を効率的に知る方法はありますでしょうか。 例:id(auto_increment)、data1(char)のテーブルに対して、 data1に『AAA』をinsertした直後に、自動で付与されたid値を知りたい。 データをinsertした直後に最老番を調べる方法では、データのinsertが多数して行われた場合に、値がずれる恐れがあります。 宜しくお願い致します。

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

  • ベストアンサー
回答No.2

>auto_incrementの属性を持つフィールド(以後、id)を含むテーブルへ、書込みを >行った場合、idフィールドには空番号が自動で付与されて書き込まれる 「空番号」ではなく、「最大値+1」です。 例えば、ある表のauto_incerment列に 1、2、4、5、10 という値が格納されている場合、次に採番されるのは11です。3を再度、採番したいなら、auto_incrementを使うのでなく、自前で採番方法を作る必要があります。 >書き込まれた番号を効率的に知る方法 自分がそのセッションで書き込んだものなら、LAST_INSERT_ID()というMySQLの関数で得られます。他人が書き込んだものも含めてなら、 select max(列名) from 表名 で検索する必要があります。

mmei
質問者

お礼

ご丁寧な回答ありがとうございます。 大変よく理解できました。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

last_insert_id()関数を調べてみては。

参考URL:
http://www.inaba.vc/item/20
mmei
質問者

お礼

早々のご回答ありがとうございます。 last_insert_id()について、初めて知りました。 使えそうですね。

関連するQ&A