PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да получите достъп до колона HSTORE с помощта на PostgreSQL C библиотека (libpq)?

libpqtypes изглежда има известна поддръжка за hstore .

Друг вариант е да избягвате директното взаимодействие с hstore във вашия код. Все още можете да се възползвате от него в базата данни, без да се занимавате с текстовото му представяне от страна на клиента. Кажете, че искате да извлечете поле hstore; просто използвате:

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

или в старите версии на PostgreSQL можете да използвате странната и нестандартна форма за връщане на функция в SELECT:

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

(но внимавайте, ако изберете няколко записа от t по този начин ще получите странни резултати, докато LATERAL ще се оправи).

Друг вариант е да използвате hstore_to_array или hstore_to_matrix когато правите заявки, ако ви е удобно да работите с представянето на масиви на PostgreSQL.

За да създадете hstore стойности, можете да използвате hstore конструкторите, които приемат масиви. Тези масиви от своя страна могат да бъдат създадени с array_agg над VALUES клауза, ако не искате да се занимавате с представянето на масива на PostgreSQL във вашия код.

Цялата тази бъркотия трябва да изчезне в бъдеще, тъй като PostgreSQL 9.4 вероятно ще има много по-добро взаимодействие между типовете hstore и json, което ще ви позволи просто да използвате json представянето, когато взаимодействате с 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. ActiveRecord::AdapterNotSpecified конфигурацията на базата данни не посочва адаптер

  2. Postgres Бавно групиране по заявка с макс

  3. postgresql postgis Ако точка вътре в кръг

  4. Как да направя каскадна актуализация?

  5. всяко натискане към heroku, изображения не се показват, кламер