• 締切済み

insert後のプライマリキーの取得

タイトルの通りなのですが テーブルがこんな感じでtest_stringをインサートしてその後に test_idを受け取りたいのですが何か方法はないでしょうか。 CREATE TABLE test ( test_id int(8) AUTO_INCREMENT , test_string VARCHAR(100), PRIMARY KEY (test_id) ); こんな風にしても1ばかり返ってきます。 String sql = "SELECT * FROM test;" int primarykey = st.executeUpdate(sql,Statement.RETURN_GENERATED_KEYS);

みんなの回答

回答No.1

タイトルがよくないですね。 プライマリキーは、表中の行を一意に識別するための列であり、auto_incrementである必要はありません。今回のような質問では、「auto_incrementで生成した値」と表現すべきです。 auto_incrementで生成した値については、「自分自身で生成した値」のことなのか、「他ユーザが生成した値も含めての最大値」なのかが質問内容からは分かりません。 自分自身で生成した値であれば、「LAST_INSERT_ID()」関数で得られます。他ユーザが生成したものも含む(列値の最大値)なら、「select max(test_id) from test」といったSQLで検索する必要があります。

参考URL:
http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.html

関連するQ&A