Saya bekerja dengan instalasi postgresql baru, dengan pengguna super 'postgres'. Masuk melalui:
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
Tidak ada kesalahan, namun tabel tidak dibuat. Ada ide?
postgresql
psql
Damien Roche
sumber
sumber
Jawaban:
createdb
adalah utilitas baris perintah yang dapat Anda jalankan dari bash dan bukan dari psql. Untuk membuat database dari psql , gunakancreate database
pernyataan seperti ini:Catatan: pastikan untuk selalu mengakhiri pernyataan SQL Anda dengan
;
sumber
;
Terlambat ke pesta, tetapi jawaban yang diterima tidak menjelaskan mengapa tidak ada kesalahan yang ditampilkan. Dan karena ini adalah sesuatu yang sering ditemukan oleh pendatang baru Postgres, saya ingin menambahkannya.
TL / TR: selalu akhiri pernyataan SQL Anda dengan
;
Karena
createdb database
tidak diakhiri dengan;
psql
berpikir bahwa pernyataan tersebut belum selesai dan menunggu masukan lainnya. Ini ditunjukkan dengan prompt yang berubah daripostgres=#
menjadipostgres-#
. Perubahan yang sangat halus yang saya harappsql
akan dilakukan secara berbeda (lebih "menonjol").Dengan memasukkan meta-command
\list
, pernyataan SQL "saat ini" akan "dibatalkan" tanpa menjalankannya.Jika
createdb
telah diakhiri dengan;
output akan menjadi:Menunjukkan dengan jelas bahwa ada sesuatu yang salah.
sumber
createdb
tidak valid. Tapi kemudian mengulangi perintah yang sama persis dengancreate database
bukannyacreatedb
bersama dengan titik koma berfungsi dengan sempurna.Saya berada dalam situasi ini belum lama ini. Jika orang lain mengalami ini, mengingat prompt perintah menunjukkan
postgres-#
Anda dapat menjalankan perintah createb yang tertunda hanya dengan mengetik;
dan tombol kembali.sumber
Buat basis data baru di PostgreSQL sangat sederhana, jalankan perintah ini di Linux (contoh CentOS 7):
sumber
Menggunakan terminal node, saya harus menjalankan:
[masukkan sandi Anda]
kemudian ...
Yang membingungkan adalah saya memasukkan perintah yang sama ini sebelumnya dan tidak berhasil. Hanya setelah keluar dan masuk kembali, saya dapat menggunakan perintah standar ini dari dokumentasi: https://www.postgresql.org/docs/10/tutorial-createdb.html
sumber