PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Di psql, mengapa beberapa perintah tidak berpengaruh?

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:

  1. 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.

  2. DDL di PostgreSQL bersifat transaksional. Anda dapat BEGIN transaksi, mengeluarkan beberapa DDL, dan COMMIT transaksi untuk membuatnya berlaku. Jika Anda tidak melakukan DDL dalam transaksi eksplisit, maka itu akan segera berlaku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Nonaktifkan koneksi untuk sementara

  2. Bagaimana cara mengubah zaman Unix menjadi stempel waktu

  3. Opsi Pemulihan Bencana untuk PostgreSQL yang Di-deploy ke Hybrid Cloud

  4. Bagaimana age() Bekerja di PostgreSQL

  5. Kuadran 2 di PostgresConf US 2018