我有可以拥有“类别”的业务对象,所以我使用的是一个看起来像
的简单表结构objects:
| id | name |
categories:
| obj_id | cat |
添加新对象及其类别非常简单:
INSERT INTO OBJECTS (name) VALUES ("This thing");
/* store the LAST_INSERT_ID() */
INSERT INTO categories values (lastId, "A category"), (lastId, "Another category"), ...;
皱纹是,我正在使用JDBC批处理查询来执行对象插入,所以我不确定如何获取last-insert-id。我需要批量插入大量对象,但不知何故保留每个对象的ID,以便我可以批量插入每个对象的相关类别。
我考虑过编写一个存储过程,我可以将类别作为数组(nope,MySQL没有数组类型)或逗号分隔列表(内置字符串标记化的ditto)传递。有没有更简单的方法?像“INSERT INTO ... JOIN ......”这样的东西?