我在 MySQL 数据库中有两个表:“messages”和“message_tags”。“messages”表有一个自动增量列“message_id”。在 Java 中,我想使用 java.sql 包向数据库添加一批消息。我想在一个事务中执行此操作以保存查询。
我的 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
...