Jika kolom pada tabel Postgres memiliki nama year
, bagaimana seharusnya mencari INSERT
query untuk menetapkan nilai untuk kolom itu?
Misalnya: INSERT INTO table (id, name, year) VALUES ( ... );
memberikan kesalahan di dekat kata tahun .
sumber
Jika kolom pada tabel Postgres memiliki nama year
, bagaimana seharusnya mencari INSERT
query untuk menetapkan nilai untuk kolom itu?
Misalnya: INSERT INTO table (id, name, year) VALUES ( ... );
memberikan kesalahan di dekat kata tahun .
Cukup lampirkan year
dalam tanda kutip ganda untuk menghentikannya ditafsirkan sebagai kata kunci :
INSERT INTO table (id, name, "year") VALUES ( ... );
Dari dokumentasi :
Ada jenis pengidentifikasi kedua: pengidentifikasi terbatas atau pengenal yang dikutip. Ini dibentuk dengan melampirkan urutan karakter acak dalam tanda kutip ganda ("). Identifier dibatasi selalu merupakan pengidentifikasi, tidak pernah kata kunci. Jadi" pilih "dapat digunakan untuk merujuk ke kolom atau tabel bernama" pilih ", sedangkan pilih yang tidak dikutip akan diambil sebagai kata kunci dan karenanya akan memicu kesalahan parse ketika digunakan di mana nama tabel atau kolom diharapkan.
MyTable
,myTable
danmytable
sama saja. Dengan kutipan lipat ini tidak dilakukan. Jadi"MyTable"
tidak lebih sama denganmytable
.update "user" set "password" = 'value...';
bekerja dengan sangat baik ...Jika Anda tidak memberikan tanda kutip di Bidang / Kolom apa pun, secara default akan diturunkan oleh Postgres. Dan Postgres akan melewatkan memeriksa kata kunci ketika datang ke nama kolom.
Dalam kasus Anda, saya pikir itu tidak wajib untuk menambahkan kutipan ketika datang ke
columns
. Tapi jika Anda menggunakankeywords
(didaftarkan oleh Postgres) sebagai namaTable
,Schema
,Function
atauTrigger
dll, Anda harus harus menggunakan tanda kutip baik ganda, atau Anda dapat menentukan nama skema dengan dot Rangkaian.Misalkan, pesanan adalah kata kunci yang didaftarkan oleh Postgres. Dan dalam beberapa skenario, Anda harus menggunakan kata kunci ini sebagai nama tabel.
Pada saat itu, Postgres akan memungkinkan Anda untuk membuat tabel
keywords
. Itulah keindahan Postgres.Untuk mengakses tabel pesanan, Anda harus menggunakan penawaran ganda atau Anda dapat nama skema sebelum nama tabel.
MISALNYA
1.
2.
Demikian juga, Anda dapat menggunakan kombinasi jenis ini. Semoga ini bisa membantu Anda.
sumber