1

一些交互式 shell 有一个内置变量,它总是指向前一个命令的结果(例如在 python3 shell 中,这个变量是“_”)。

Sqlite3 和 Psql 提示中是否存在任何此类变量?

4

1 回答 1

3

psql没有,而且它并不是处理关系数据的典型方式。如果要保留先前查询的结果,请将其放在临时表中。

您的意思是您希望能够:

SELECT count(somecol), avg(someothercol) FROM _;

... 例如?即您希望能够使用您的“最后结果”集并对其进行进一步处理?

如果是这样,通常最好:

  • 使用 .将结果放入临时表中SELECT INTO。这几乎适用于任何东西,包括普通SELECT的 , DELETE ... RETURNING, INSERT ... RETURNING,UPDATE ... RETURNING等。然后根据需要处理临时表。
  • 创建结果的临时视图。这当然只适用于SELECT. CREATE TEMPORARY VIEW创建一个只存在于您的会话的视图。
  • 使用阅读线。只需按向上箭头即可访问上一个命令,根据需要进行编辑,然后重新运行。
  • 使用\epsql 命令在外部编辑器(使用 env var 指定EDITOR)中打开最后一个命令,您可以在其中更轻松地对其进行修改。

SQLite 没有\e命令,我认为它没有可以返回结果集(... RETURNING命令)的 DML 命令。否则,其中大部分也应该适用于那里。

于 2012-07-31T07:32:44.613 回答