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

Jak przetłumaczyć PostgreSQL OID za pomocą Pythona?

Możesz przekonwertować „OID” na tekst przez proste rzutowanie - pod warunkiem OID (identyfikator obiektu) jest w rzeczywistości regtype (podtyp OID dla zarejestrowanych typów), jak można by uzyskać z funkcji pg_typeof() .

Postgres zwykle wyświetla wartości typu danych regtype jako tekst do użytkownika. Przykład:

SELECT pg_typeof('2013-1-1'::date);
 pg_typeof
-----------
 date

Chociaż wewnętrznie jest to OID:

SELECT pg_typeof('2013-1-1'::date)::oid;
 pg_typeof
-----------
      1082

Jeśli twój klient nie zrobi tego samego, możesz wymusić to za pomocą wyraźnego rzutu:

SELECT pg_typeof('2013-1-1'::date)::text;
SELECT 1082::regtype::text;

Pobierz typy wszystkich kolumn z katalogu systemowego

Nie jest jasne, jak faktycznie pobierasz typy. Rozważ to zapytanie, aby uzyskać pełne informacje:

SELECT attname
     , atttypid::regtype AS base_type
     , format_type(atttypid, atttypmod) AS full_type
FROM   pg_catalog.pg_attribute
WHERE  attrelid = 'public.tbl'::regclass  -- your table name here
AND    attnum > 0
AND    NOT attisdropped
ORDER  BY attnum;

  attname   |          base_type          |         full_type
------------+-----------------------------+-----------------------------
 age_id     | integer                     | integer
 age        | text                        | text
 ageabk     | character                   | character(2)
 foo        | boolean                     | boolean
 log_up     | timestamp without time zone | timestamp without time zone

Pamiętaj, że typ_formatu(..) wyświetla typ wraz z modyfikatorami.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Railsy has_many :przez PG::Error:ERROR:identyfikator odniesienia do kolumny jest niejednoznacznym błędem

  2. Kilka obszarów ulepszeń w PostgreSQL 9.4

  3. instalacje jednoinstancyjne postgresql

  4. Jak używać Flask/Peewee z Heroku?

  5. Wyszukaj model w danym przedziale cenowym w różnych walutach