ステートメントはセミコロンで終わります。
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を実行しない場合は、すぐに有効になります。