PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak uzyskać dostęp do kolumny HSTORE za pomocą biblioteki PostgreSQL C (libpq)?

libpqtypes wydaje się mieć pewne wsparcie dla hstore .

Inną opcją jest uniknięcie bezpośredniej interakcji z hstore w twoim kodzie. Nadal możesz z niego korzystać w bazie danych bez zajmowania się jego reprezentacją tekstową po stronie klienta. Powiedzmy, że chcesz pobrać pole hstore; po prostu używasz:

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

lub w starych wersjach PostgreSQL możesz użyć dziwacznego i niestandardowego formularza set-returning-in-SELECT:

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

(ale uważaj, jeśli wybierasz wiele rekordów z t w ten sposób uzyskasz dziwne wyniki, podczas gdy LATERAL będzie dobrze).

Inną opcją jest użycie hstore_to_array lub hstore_to_matrix podczas zapytań, jeśli nie masz problemu z reprezentacją tablic PostgreSQL.

Do tworzenia wartości hstore możesz użyć konstruktorów hstore, które przyjmują tablice. Te tablice można z kolei tworzyć za pomocą array_agg ponad VALUES jeśli nie chcesz zajmować się reprezentacją tablicową PostgreSQL w swoim kodzie.

Cały ten bałagan powinien zniknąć w przyszłości, ponieważ PostgreSQL 9.4 prawdopodobnie będzie miał znacznie lepszą współpracę między typami hstore i json, co pozwoli ci po prostu używać reprezentacji json podczas interakcji z 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. Chcę wyświetlać w plikach postgis, które mają mniej niż 10 000 metrów i ich obliczoną odległość

  2. Czy można zmienić naturalną kolejność kolumn w Postgresie?

  3. ZAMÓW WEDŁUG listy wartości IN

  4. Jak wypróbować wiele opcji SELECT, aż wynik będzie dostępny?

  5. Prawidłowy sposób użycia NOT IN Postgres