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

Определяне на OID на таблица в Postgres 9.1?

За да получите OID на таблицата, приведете към идентификатора на обекта тип regclass (докато е свързан към същата DB):

SELECT 'mytbl'::regclass::oid;

Това намира първата таблица (или изглед и т.н.) с даденото име по search_path или повдига изключение, ако не е намерено.

Схематично квалифицирайте името на таблицата, за да премахнете зависимостта от пътя за търсене:

SELECT 'myschema.mytbl'::regclass::oid;

В Postgres 9.4 или по-късно можете също да използвате to_regclass('myschema.mytbl') , което не предизвиква изключение, ако таблицата не бъде намерена:

  • Как да проверите дали таблица съществува в дадена схема

След това трябва само да потърсите каталожната таблица pg_attribute за съществуването на колоната:

SELECT TRUE AS col_exists
FROM   pg_attribute 
WHERE  attrelid = 'myschema.mytbl'::regclass
AND    attname  = 'mycol'
AND    NOT attisdropped  -- no dropped (dead) columns
-- AND attnum > 0        -- no system columns (you may or may not want this)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи функцията timezone() в PostgreSQL

  2. Как Tand() работи в PostgreSQL

  3. Увеличете стойност в Postgres

  4. Кой е най-препоръчителният начин за съхраняване на време в PostgreSQL с помощта на Java?

  5. Първични ключове за препращане към външни ключове на POSTGRESQL на две различни таблици