【问题标题】:Is there valid statement that don’t return a recordset? [closed]是否存在不返回记录集的有效语句? [关闭]
【发布时间】:2020-12-06 03:56:02
【问题描述】:

在问题Difference between a statement and a query in SQLthe accepted answer 中说:

语句是数据库引擎识别为有效命令的任何文本。

查询是返回记录集(可能为空)的语句。

例如,我知道updateinsert 在使用returning 子句时可以返回一个recorset,所以我猜他们在另一种情况下返回一个空的返回集。此外,根据 postgres 文档,update 命令返回一个“命令标签”。但我不明白这个标签是附加到一个空记录集上,还是它真的是返回的全部。

我的问题是:考虑到this list of SQL commands,我怎么知道哪个没有返回结果集(甚至不是空的)以及它们究竟返回了什么?

【问题讨论】:

  • 有很多语句不返回记录集。 updatebegincreate tabledrop tableadd index 等。枚举所有这些超出了堆栈溢出答案的范围。请将您的问题限制为每个帖子一个实际问题。
  • @meagar 我认为update 返回一个结果集,因为根据您的数据库,您可以执行update ... returning col1, col2。所以我的是当returning 不存在时它返回一个空结果集

标签: sql standards definition


【解决方案1】:

普遍接受的版本是这样的

  • Query(ies) 是 select 语句,可能返回也可能不返回行 但不会对数据库进行任何更改。
  • Statement(s) 是执行成功后的指令 数据库中的更改(提交后)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2018-01-30
    • 1970-01-01
    • 2014-08-04
    相关资源
    最近更新 更多