- ベストアンサー
auto_incrementフィールドの書込み内容を知る方法
auto_incrementの属性を持つフィールド(以後、id)を含むテーブルへ、書込みを行った場合、idフィールドには空番号が自動で付与されて書き込まれると思いますが、書き込まれた番号を効率的に知る方法はありますでしょうか。 例:id(auto_increment)、data1(char)のテーブルに対して、 data1に『AAA』をinsertした直後に、自動で付与されたid値を知りたい。 データをinsertした直後に最老番を調べる方法では、データのinsertが多数して行われた場合に、値がずれる恐れがあります。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>auto_incrementの属性を持つフィールド(以後、id)を含むテーブルへ、書込みを >行った場合、idフィールドには空番号が自動で付与されて書き込まれる 「空番号」ではなく、「最大値+1」です。 例えば、ある表のauto_incerment列に 1、2、4、5、10 という値が格納されている場合、次に採番されるのは11です。3を再度、採番したいなら、auto_incrementを使うのでなく、自前で採番方法を作る必要があります。 >書き込まれた番号を効率的に知る方法 自分がそのセッションで書き込んだものなら、LAST_INSERT_ID()というMySQLの関数で得られます。他人が書き込んだものも含めてなら、 select max(列名) from 表名 で検索する必要があります。
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
last_insert_id()関数を調べてみては。
- 参考URL:
- http://www.inaba.vc/item/20
質問者
お礼
早々のご回答ありがとうございます。 last_insert_id()について、初めて知りました。 使えそうですね。
お礼
ご丁寧な回答ありがとうございます。 大変よく理解できました。