Apakah ada cara case-insensitive "built-in elegan" untuk memeriksa apakah ada db?
Saya hanya menemukan SELECT datname FROM pg_catalog.pg_database WHERE datname='dbname'
, tetapi ini adalah cek CS. Hal pertama yang terlintas dalam pikiran untuk mengambil semua nama db dan memfilternya dengan tangan, tapi saya pikir ada cara yang lebih elegan untuk melakukannya.
postgresql
catalogs
Andrei Orlov
sumber
sumber
Jawaban:
Kamu bisa menggunakan:
... Namun, nama database adalah case sensitive, sehingga mencoba untuk menyambung ke nama DB tidak akan benar-benar bekerja kecuali Anda cocok kasus ini dengan benar. Ini tidak akan menggunakan indeks apa pun
dbname
, tetapi agaknya tidak mungkin Anda memiliki cukup database untuk mempermasalahkan hal ini.Orang-orang tidak menyadari hal itu karena case-lipatan PostgreSQL tanda pengenal tanpa tanda kutip untuk huruf kecil, sehingga sebagian besar waktu terlihat tidak sensitif huruf untuk klien. Sebenarnya,
"DatabaseName"
dan"databasename"
hal-hal yang berbeda.sumber
Jika Anda menginginkan jawaban benar / salah, Anda dapat menggunakannya
sumber