我有两张桌子:
CREATE TABLE transaction (
id bigserial PRIMARY KEY,
transactiondataid bigint,
baseamount integer,
pricelistamount integer,
trxamount integer,
...
);
CREATE TABLE transactiondata (
id bigserial PRIMARY KEY,
productname character varying(255),
...
);
transaction
参考transactiondata
为 1:1 关系。
如何进行批量插入并在批量中正确设置transactiondataid
of transaction
?有可能吗?
如果由于 dbutils 而无法实现,那么可以使用 simplePreparedStatement
吗?
目前,我必须遵循单个插入,它有效:
QueryRunner queryRunner = new QueryRunner([getDatasource()]);
Long id = queryRunner.insert("insert into transactiondata (accountgroupname) values(?)", new ScalarHandler<Long>(), "Cola");
queryRunner.insert("insert into transaction (baseamount, transactiondataid) values(?, ?)", new ScalarHandler<Long>(), 10, id);
但由于我需要插入数百万条记录,我需要做一些批处理......