1

一部のインタラクティブシェルには、前のコマンドの結果を常に指す組み込み変数があります(たとえば、python3シェルでは、この変数は「_」です)。

Sqlite3およびPsqlプロンプトにそのような変数はありますか?

4

1 に答える 1

3

psqlそうではなく、リレーショナルデータを操作するための一般的な方法ではありません。前のクエリの結果を保持する場合は、一時テーブルに配置します。

次のことができるようになりたいという意味ですか。

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

... 例えば?つまり、「最後の結果」セットを使用して、さらに処理を実行できるようにしたいですか?

その場合、通常は次のことを行うのが最善です。

  • を使用して結果を一時テーブルに入れますSELECT INTOSELECTこれは、通常のDELETE ... RETURNING、、、などINSERT ... RETURNING、ほとんどすべての場合に機能しUPDATE ... RETURNINGます。次に、必要に応じて一時テーブルを処理します。
  • 結果の一時的なビューを作成します。もちろん、これは。に対してのみ機能しSELECTます。CREATE TEMPORARY VIEWセッションにのみ存在するビューを作成します。
  • readlineを使用します。上矢印を押すだけで前のコマンドに移動し、必要に応じて編集して再実行します。
  • psqlコマンドを使用し\eて、最後のコマンドを外部エディター(env varで指定EDITOR)で開き、より簡単に変更できるようにします。

SQLiteにはコマンドがなく、結果セット(コマンド)\eを返すことができるDMLコマンドはないと思います。... RETURNINGそうでなければ、そのほとんどはそこにも当てはまるはずです。

于 2012-07-31T07:32:44.613 に答える