Sepertinya saya tidak dapat menemukan dokumentasi yang menggambarkan format valid dari nama skema PostgreSQL. Saya tahu bahwa nama skema tidak dapat:
- mulai dengan angka
- punya ruang
- dimulai dari
pg_
Apa lagi? Di mana saya harus mencari?
postgresql
Ramon Tayag
sumber
sumber
pg_
garis bawah untuk link yang, seperti Nathan C disebutkan .Menurut dokumentasi , itu juga tidak dapat mulai dengan
pg_
seperti yang disediakan. Selain itu tampilannya cukup unik.sumber
this-is schema
dan itu masih akan menjadi nama skema yang tidak valid.Jawaban yang benar adalah jawaban yang diberikan oleh para gadis. Namun, saya ingin menunjukkan bahwa PostgreSQL memiliki aturan pengenal yang dikutip yang mungkin perlu Anda ingat. "Pengidentifikasi yang dikutip dapat berisi karakter apa pun, kecuali karakter dengan kode nol. (Untuk memasukkan tanda kutip ganda, tulis dua tanda kutip ganda.)" ... Ada juga beberapa batasan pada kasus yang mungkin ingin Anda lihat.
Jadi, jika Anda akan mengutip pengidentifikasi Anda, maka Anda dapat menggunakan karakter apa pun yang Anda inginkan (dengan pengecualian \ 0). Tetapi jika Anda tidak mengutip pengidentifikasi Anda, Anda harus mengikuti aturan yang diuraikan di halaman itu.
Saya ingin menunjukkan ini terutama karena itu telah menggigit saya sebelumnya, terutama aturan mengenai kasus dalam pengidentifikasi yang tidak dikutip (dan nama skema dianggap sebagai pengidentifikasi).
MEMPERBARUI:
Sebagai contoh (tidak khusus berlaku untuk pengidentifikasi skema, tetapi juga berlaku untuk mereka):
Ini mungkin perilaku yang diharapkan bagi mereka yang berpengalaman dengan PostgreSQL (dan mungkin standar SQL), tetapi seseorang yang baru mengenal PG dan berasal dari sudut pandang server basis data lain (SQL Server atau Oracle misalnya) mungkin bertabrakan dengan perilaku ini dan bertanya-tanya mengapa tabel yang baru mereka buat hilang.
Mungkin beberapa manual merekomendasikan untuk tidak menggunakan pengenal yang dikutip, tetapi faktanya adalah pengenal yang dikutip tersedia untuk digunakan dan dapat digunakan dan selanjutnya, banyak paket menjadikannya kebijakan untuk selalu menggunakan pengenal yang dikutip saat membuat dan mengakses hubungan yang tidak seluruhnya huruf kecil, misalnya, PGAdmin III.
Misalnya, ini adalah skrip yang dihasilkan oleh PGAdmin III saat membuat tabel melalui UI:
Oleh karena itu, satu-satunya cara pengguna dapat mengakses tabel ini dalam kueri adalah dengan merujuk ke pengenal yang dikutip, yaitu
"TBLUSER"
,. Mencoba mengakses tabel ini dalam kueri dengan pengenal yang tidak dikutip akan mengakibatkan kegagalan untuk menemukan hubungan, yaituTBLUSER
,.sumber