2011-02-08 5 views
0

私はオートナンバーフィールド "product_id"によって識別されるデータベースに新しいレコードを作成するためにINSERTを使用しています。行を挿入した直後に、新しい行のIDを取得して、後で処理するために情報を出力できるようにする必要があります。このIDを取得するためのmysql関数はありますか?MySQLでINSERTされたばかりの行のオートナンバーIDを取得

+0

これは一般的にスクリプト言語で実行されます。使用していますか? (もし単純に 'SELECT LAST_INSERT_ID();'を使用していないなら**スクリプト言語を使用している場合、言語固有の手段があればそれを使う必要があります**) –

+0

[Select last insert id] (http://stackoverflow.com/questions/2266604/select-last-insert-id) –

答えて

0

参照:http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

注:これはC APIを想定しています。テキストから

20.8.10.3。あなたはAUTO_INCREMENTカラムを含むテーブルにレコードを挿入する場合は、にmysql_insert_id()関数を呼び出すことによって、その列に格納された値を得ることができます最後に挿入された列

のためのユニークIDを取得する方法。

+0

これはこのアプリケーションでは完全に機能しますが、好奇心の念から、大規模なアプリケーションでは安全ですストリーミングされた? – MarathonStudios

+0

@MarathonStudios PHPなどのスクリプト言語でMySQLにアクセスしていますか?そうであれば、これは正しい使用方法ではありません。 –

+1

@MarathonStudios:スレッドCと仮定すると、各スレッドにdbとの独自の接続がある場合、安全でなければなりません。ドキュメントから: "mysql_insert_id()の値は、現在のクライアント接続内で発行されたステートメントによってのみ影響を受けます。他のクライアントから発行されたステートメントの影響を受けません。 – HBlend

2

LAST_INSERT_ID()は、自動的に生成されたAUTO_INCREMENT値を返します。

関連する問題