SQL批量更新保证顺序?

发布于 2025-01-03 11:58:57 字数 415 浏览 0 评论 0原文

假设项目列表包含项目1、项目2和项目3。数据库是否也按此顺序插入我的项目?

List<Item> items = ...
List<Map<String, Object>> batchValues = new ArrayList<Map<String, Object>>();
for (Item item : items) {
    Map<String, Object> namedParameters = ...
    batchValues.add(namedParameters);
}
getNamedParameterJdbcTemplate().batchUpdate(SQL_INSERT_ITEMS, batchValues.toArray(new Map[0]));

Assume the item list contains item1, item2 and item3. Does the DB insert my items in this order as well?

List<Item> items = ...
List<Map<String, Object>> batchValues = new ArrayList<Map<String, Object>>();
for (Item item : items) {
    Map<String, Object> namedParameters = ...
    batchValues.add(namedParameters);
}
getNamedParameterJdbcTemplate().batchUpdate(SQL_INSERT_ITEMS, batchValues.toArray(new Map[0]));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

撩人痒 2025-01-10 11:58:57

当然可以,不然就太没价值了。

顺便说一句,您应该更改此代码

batchValues.toArray(new Map[0])

batchValues.toArray(new Map[batchValues.size()])

Of course it does, otherwise it would be pretty worthless.

And by the way, you should change this code:

batchValues.toArray(new Map[0])

to

batchValues.toArray(new Map[batchValues.size()])
戴着白色围巾的女孩 2025-01-10 11:58:57

关系数据库不维护插入顺序。当您查询记录时,您可以使用 order by 子句指定您想要的顺序。如果您需要按照插入记录的方式对记录进行排序,则必须手动将数字存储到记录的字段中。某些数据库将为表列提供自动增量选项,或者您可以使用序列生成器 (Oracle)。

Relational databases don't maintain an insertion order. When you query the records back out you can specify the order you want them in with an order by clause. If you need the records to be ordered the way you inserted them, you will have to manually store a number into a field on the record. Some databases will have an auto-increment option for a table column, or a sequence generator (Oracle) that you can use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文