Pernyataan diakhiri dengan titik koma.
Di psql
, menekan enter tanpa titik koma melanjutkan pernyataan ke baris berikutnya, menambahkan apa yang Anda tulis ke buffer kueri daripada mengeksekusinya. Anda akan melihat bahwa prompt berubah dari dbname=>
ke dbname->
untuk menunjukkan bahwa Anda berada di jalur lanjutan.
regress=> DROP TABLE sometable
regress-> \r
Query buffer reset (cleared).
regress=> DROP TABLE sometable;
ERROR: table "sometable" does not exist
regress=>
Perhatikan bagaimana setelah saya menekan enter tanpa titik koma, prompt berubah menjadi regress-#
dan tidak ada tindakan yang diambil. Tidak ada tabel sometable
, jadi jika pernyataan telah dijalankan, kesalahan akan dilaporkan.
Selanjutnya, lihat penggunaan \r
di baris berikutnya? Itu membersihkan buffer kueri. Perhatikan bahwa prompt berubah kembali ke regress=#
saat buffer dikosongkan, karena tidak ada pernyataan parsial yang di-buffer lagi.
Ini menunjukkan bagaimana pernyataan dapat dipisah lintas baris:
regress=> DROP TABLE
regress-> sometable
regress-> ;
ERROR: table "sometable" does not exist
Yang membingungkan adalah psql
perintah garis miring terbalik seperti \d
baris baru diakhiri, bukan titik koma diakhiri, jadi mereka melakukannya dijalankan saat Anda menekan enter. Itu berguna ketika Anda ingin (katakanlah) melihat definisi tabel saat menulis pernyataan, tetapi agak membingungkan bagi pendatang baru.
Adapun pertanyaan tambahan Anda:
-
Jika ada perintah "clear screen" di
psql
untuk Windows saya belum menemukannya. Di Linux saya hanya menggunakan control-L, sama seperti program yang menggunakan readline lainnya. Di Windows\! cls
akan berhasil. -
DDL di PostgreSQL bersifat transaksional. Anda dapat
BEGIN
transaksi, mengeluarkan beberapa DDL, danCOMMIT
transaksi untuk membuatnya berlaku. Jika Anda tidak melakukan DDL dalam transaksi eksplisit, maka itu akan segera berlaku.