【问题标题】:Does INSERT RETURNING guarantees order of returned rowsINSERT RETURNING 是否保证返回行的顺序
【发布时间】:2023-02-16 23:30:28
【问题描述】:

INSERT ... RETURNING 是否按输入顺序返回行?文档对此不清楚。这对于获取插入行的 ID 并在相关记录中使用它们非常有用。

事实上,我认为这就是 import 包(对于 Rails)所做的,例如:

authors = [Author.new()]
books = [Book.new(author: authors[0])]
Author.import(authors)
Books.import(books)

将根据作者为导入的书籍在书籍中设置正确的 author_id。在控制台中,sql 语句似乎是一个INSERT ... RETURNING,然后我猜模型是在后台用 ids 更新的。

但是,这是 Postgres 的一个特性吗?或者只是这个包以某种方式解决了这个问题。

在这里提出了类似的问题没有任何结果,也许这次有人可以确认。

【问题讨论】:

    标签: sql ruby-on-rails postgresql sql-insert


    【解决方案1】:

    INSERT ... RETURNING 将按照插入的顺序返回行,但这是一个实现工件。我想这不会改变,但不能保证。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2013-01-19
      • 2012-06-18
      • 2014-07-22
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多