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

Bagaimana cara mengakses kolom HSTORE menggunakan pustaka PostgreSQL C (libpq)?

libpqtypes tampaknya memiliki beberapa dukungan untuk hstore .

Pilihan lainnya adalah menghindari interaksi langsung dengan hstore dalam kode Anda. Anda masih bisa mendapatkan keuntungan darinya di database tanpa berurusan dengan representasi teksnya di sisi klien. Katakanlah Anda ingin mengambil bidang hstore; Anda cukup menggunakan:

SELECT t.id, k, v FROM thetable t, LATERAL each(t.hstorefield);

atau pada versi PostgreSQL lama Anda dapat menggunakan formulir set-returning-function-in-SELECT yang unik dan tidak standar:

SELECT t.id, each(t.hstorefield) FROM thetable t;

(tapi hati-hati jika memilih beberapa catatan dari t dengan cara ini, Anda akan mendapatkan hasil yang aneh ketika LATERAL akan baik-baik saja).

Pilihan lain adalah menggunakan hstore_to_array atau hstore_to_matrix saat membuat kueri, jika Anda merasa nyaman berurusan dengan representasi array PostgreSQL.

Untuk membuat nilai hstore, Anda dapat menggunakan konstruktor hstore yang menggunakan array. Array tersebut pada gilirannya dapat dibuat dengan array_agg melalui VALUES klausa jika Anda tidak ingin berurusan dengan representasi array PostgreSQL dalam kode Anda.

Semua kekacauan ini akan hilang di masa mendatang, karena PostgreSQL 9.4 kemungkinan akan memiliki interoperasi yang jauh lebih baik antara tipe hstore dan json, memungkinkan Anda untuk hanya menggunakan representasi json saat berinteraksi dengan hstore.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan id jika ada baris, MASUKKAN sebaliknya

  2. dplyr left_join kurang dari, lebih besar dari kondisi

  3. Masukkan seluruh nilai massal DataTable ke dalam tabel postgreSQL

  4. Menangani BatchUpdateException menggunakan withBatch

  5. Menyimpan ARRAY PostgreSQL dari nilai ENUM