Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Sensitivitas Kasus Postgres

Di PostgreSQL, nama yang tidak dikutip tidak peka huruf besar-kecil. Jadi SELECT * FROM hello dan SELECT * FROM HELLO setara.

Namun, nama yang dikutip peka terhadap huruf besar-kecil. SELECT * FROM "hello" adalah tidak setara dengan SELECT * FROM "HELLO" .

Untuk membuat "jembatan" antara nama yang dikutip dan nama yang tidak dikutip, nama yang tidak dikutip secara implisit ditulis dengan huruf kecil, jadi hello , HELLO dan HeLLo setara dengan "hello" , tetapi tidak untuk "HELLO" atau "HeLLo" (OOPS!).

Jadi, saat membuat entitas (tabel, tampilan, prosedur, dll) di PostgreSQL, Anda harus menentukannya dengan tanda kutip, atau tanda kutip-tetapi-huruf kecil.

Untuk mengonversi tabel/tampilan/dll yang ada, Anda dapat menggunakan sesuatu seperti ALTER TABLE "FOO" RENAME TO "foo" .

Atau, coba ubah dump dari MSSQL agar "kompatibel dengan PostgreSQL" (sehingga akan berisi foo s atau "foo" s tetapi bukan "FOO" s).

  • Baik dengan mengedit file dump secara eksplisit. (Jika Anda menggunakan Linux, Anda dapat melakukan sed -r 's/"[^"]+"/\L\0/g' dumpfile — namun berhati-hatilah bahwa perintah ini juga dapat mengubah teks dalam literal string.)
  • Atau dengan menentukan beberapa opsi saat mendapatkan dump dari MSSQL. (Saya tidak yakin apakah ada opsi seperti itu di MSSQL, tidak pernah menggunakannya, tapi mungkin opsi seperti itu harus ada.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghindari tugas FTP SSIS agar tidak gagal ketika tidak ada file untuk diunduh?

  2. Pandangan Pertama pada Penaksir Kardinalitas SQL Server Baru

  3. Cara PILIH * tapi tanpa Nama kolom harus unik di setiap tampilan

  4. Microsoft SQL Server 2005/2008:XML vs tipe data teks/varchar

  5. Cara Memperbaiki "Pernyataan ALTER TABLE SWITCH gagal"