アプリ版:「スタンプのみでお礼する」機能のリリースについて

auto_incrementの属性を持つフィールド(以後、id)を含むテーブルへ、書込みを行った場合、idフィールドには空番号が自動で付与されて書き込まれると思いますが、書き込まれた番号を効率的に知る方法はありますでしょうか。

例:id(auto_increment)、data1(char)のテーブルに対して、
data1に『AAA』をinsertした直後に、自動で付与されたid値を知りたい。

データをinsertした直後に最老番を調べる方法では、データのinsertが多数して行われた場合に、値がずれる恐れがあります。
宜しくお願い致します。

A 回答 (2件)

>auto_incrementの属性を持つフィールド(以後、id)を含むテーブルへ、書込みを


>行った場合、idフィールドには空番号が自動で付与されて書き込まれる

「空番号」ではなく、「最大値+1」です。
例えば、ある表のauto_incerment列に
1、2、4、5、10
という値が格納されている場合、次に採番されるのは11です。3を再度、採番したいなら、auto_incrementを使うのでなく、自前で採番方法を作る必要があります。

>書き込まれた番号を効率的に知る方法

自分がそのセッションで書き込んだものなら、LAST_INSERT_ID()というMySQLの関数で得られます。他人が書き込んだものも含めてなら、
select max(列名) from 表名
で検索する必要があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/24 22:23

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



参考URL:http://www.inaba.vc/item/20
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/24 22:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!