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

Как да преведа PostgreSQL OID с помощта на python

Можете да конвертирате "OID" в текст чрез просто кастинг - предоставен OID (идентификатор на обект) всъщност е regtype (подтипа OID за регистрирани типове), както бихте получили от функцията pg_typeof() .

Postgres обикновено показва стойности от типа данни regtype като текст към потребителя. Пример:

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

Докато вътрешно това е OID:

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

Ако вашият клиент не направи същото, можете да го принудите с изрично изпълнение:

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

Вземете типове на всички колони от системния каталог

Не е ясно как вие всъщност извличате типовете. Разгледайте тази заявка, за да получите пълна информация:

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

Имайте предвид, че format_type(..) показва типа, включително модификатори.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоинкремент в течна база

  2. Postgresql:Проверете дали схемата съществува?

  3. Postgres UUID JDBC не работи

  4. Опростяване на заявка с LIMIT в подзаявка и клаузи WHERE, дублирани в подзаявката и външната заявка

  5. PostgreSQL:уникално ограничение или уникален индекс