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

Perilaku aneh di Postgresql

update_tbl_point Anda function mungkin melakukan sesuatu seperti ini:

new.last_update = current_timestamp;

tetapi harus menggunakan new."Last_Update" jadi perbaiki fungsi pemicu Anda.

Nama kolom dinormalisasi menjadi huruf kecil di PostgreSQL (kebalikan dari apa yang dikatakan standar SQL, ingatlah Anda) tetapi pengidentifikasi yang dikutip ganda mempertahankan kasusnya:

Mengutip pengidentifikasi juga membuatnya peka huruf besar/kecil, sedangkan nama yang tidak dikutip selalu dilipat menjadi huruf kecil. Misalnya, pengidentifikasi FOO, foo, dan "foo" dianggap sama oleh PostgreSQL, tetapi "Foo" dan "FOO" berbeda dari ketiganya dan satu sama lain. (Pelipatan nama yang tidak dikutip menjadi huruf kecil di PostgreSQL tidak sesuai dengan standar SQL, yang mengatakan bahwa nama yang tidak dikutip harus dilipat menjadi huruf besar. Jadi, foo harus setara dengan "FOO" bukan "foo" menurut standar. Jika Anda ingin menulis aplikasi portabel Anda disarankan untuk selalu mengutip nama tertentu atau tidak pernah mengutipnya.)

Jadi, jika Anda melakukan ini:

create table pancakes (
    Eggs integer not null
)

maka Anda dapat melakukan salah satu dari ini:

update pancakes set eggs = 11;
update pancakes set Eggs = 11;
update pancakes set EGGS = 11;

dan itu akan berfungsi karena ketiga formulir dinormalisasi ke eggs . Namun, jika Anda melakukan ini:

create table pancakes (
    "Eggs" integer not null
)

maka Anda dapat melakukan ini:

update pancakes set "Eggs" = 11;

tapi bukan ini:

update pancakes set eggs = 11;

Praktik biasa dengan PostgreSQL adalah menggunakan pengidentifikasi huruf kecil di mana-mana sehingga Anda tidak perlu khawatir tentang hal itu. Saya akan merekomendasikan skema penamaan yang sama di database lain juga, harus mengutip semuanya hanya membuat Anda berantakan tanda kutip ganda (standar), backticks (MySQL), dan tanda kurung (SQL Server) di SQL Anda dan itu tidak akan membuat Anda punya teman.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan Hari ke Tanggal di PostgreSQL

  2. date_trunc PostgreSQL di mySQL

  3. Bagaimana current_time Bekerja di PostgreSQL

  4. Mengurai pemutakhiran PostgreSQL

  5. Pemicu vs. batasan pemeriksaan