MySQLデータベースには「messages」と「message_tags」の2つのテーブルがあります。「messages」テーブルには、自動インクリメント列「message_id」があります。Javaでは、java.sqlパッケージを使用してデータベースにメッセージのバッチを追加したいと思います。クエリを保存するために、これを1つのトランザクションで実行したいと思います。
私のSQLコードは次のようになります。
START TRANSACTION
INSERT INTO messages(`message`) VALUES ('message1');
INSERT INTO messages_tags(`message_id`, `tags`) VALUES (LAST_INSERT_ID(), 'tagfoo1');
INSERT INTO messages_tags(`message_id`, `tags`) VALUES (LAST_INSERT_ID(), 'tagbar1');
INSERT INTO messages(`message`) VALUES ('message2');
INSERT INTO messages_tags(`message_id`, `tags`) VALUES (LAST_INSERT_ID(), 'tagfoo1');
INSERT INTO messages(`message`) VALUES ('message3');
INSERT INTO messages_tags(`message_id`, `tags`) VALUES (LAST_INSERT_ID(), 'tagfoo2');
...
COMMIT
メッセージテーブルから新しく生成されたすべてのIDを、元のメッセージと一致させることができる方法でJavaに戻すことは可能ですか?このようなもの:
message1 => 1234
message2 => 1235
message3 => 1236
...