我正在使用 Oracle 11.2g 实例。我想通过自己生成主键值将行插入表中来了解我所暴露的内容。我会从某些表中选择 max(pk);然后将接下来的一百个值用于我接下来的 100 个插入。是在玩火吗?
上下文是:我有大量的插入要做,它们被分成几个由外键链接的表。我试图获得良好的性能,而不是使用 PL/SQL。
[编辑]这里的代码示例看起来像我正在处理的:
QString query1 = "INSERT INTO table 1 (pk1_id, val) VALUES (pk1_seq.nextval, ?)"
sqlQuery->prepare(query);
sqlQuery->addBindValue(vec_of_values);
sqlQuery->execBatch();
QString query2 = "INSERT INTO table 2 (pk2_id, another_val, pk1_pk1_id) VALUES (pk2_seq.nextval, ?, ?)"
sqlQuery->prepare(query);
sqlQuery->addBindValue(vec_of_values);
// How do I get the primary keys (hundreds of them)
// from the first insert??
sqlQuery->addBindValue(vec_of_pk1);
sqlQuery->execBatch();