ステートメントはセミコロンで終わります。
psqlで 、セミコロンなしでEnterキーを押すと、ステートメントが次の行に続き、書き込んだ内容が実行されるのではなくクエリバッファーに追加されます。プロンプトがdbname=>から変わることに気付くでしょう。 dbname->へ 継続ラインにいることを示します。
regress=> DROP TABLE sometable
regress-> \r
Query buffer reset (cleared).
regress=> DROP TABLE sometable;
ERROR: table "sometable" does not exist
regress=>
セミコロンなしでEnterキーを押すと、プロンプトがregress-#に変わることに注意してください。 何のアクションも取られません。テーブルsometableはありません 、したがって、ステートメントが実行された場合、エラーが報告されます。
次に、\rの使用法をご覧ください 次の行に?これにより、クエリバッファがクリアされます。プロンプトがregress=#に戻ることに注意してください バッファリングされた部分的なステートメントがなくなったため、バッファがクリアされたとき。
これは、ステートメントを行間で分割する方法を示しています。
regress=> DROP TABLE
regress-> sometable
regress-> ;
ERROR: table "sometable" does not exist
紛らわしいのは、psql \dのようなバックスラッシュコマンド 改行で終了し、セミコロンで終了しないため、 Enterキーを押したときに実行します。これは、ステートメントの作成中に(たとえば)テーブル定義を表示する場合に便利ですが、初心者にとっては少し混乱します。
その他の質問について:
-
psqlに「画面のクリア」コマンドがある場合 Windowsの場合、まだ見つけていません。 Linuxでは、他のreadlineを使用するプログラムと同じようにcontrol-Lを使用します。 Windowsの場合\! cls動作します。 -
PostgreSQLのDDLはトランザクションです。
BEGINできます トランザクション、いくつかのDDLの発行、およびCOMMITそれを有効にするためのトランザクション。明示的なトランザクションでDDLを実行しない場合は、すぐに有効になります。