- 締切済み
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);
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.1
タイトルがよくないですね。 プライマリキーは、表中の行を一意に識別するための列であり、auto_incrementである必要はありません。今回のような質問では、「auto_incrementで生成した値」と表現すべきです。 auto_incrementで生成した値については、「自分自身で生成した値」のことなのか、「他ユーザが生成した値も含めての最大値」なのかが質問内容からは分かりません。 自分自身で生成した値であれば、「LAST_INSERT_ID()」関数で得られます。他ユーザが生成したものも含む(列値の最大値)なら、「select max(test_id) from test」といったSQLで検索する必要があります。