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

Określanie OID tabeli w Postgresie 9.1?

Aby uzyskać OID tabeli, rzutuj na identyfikator obiektu typu regclass (podczas połączenia z tą samą bazą danych):

SELECT 'mytbl'::regclass::oid;

Spowoduje to znalezienie pierwszej tabeli (lub widoku itp.) o podanej nazwie wzdłuż search_path lub zgłasza wyjątek, jeśli nie zostanie znaleziony.

Zakwalifikuj schematowo nazwę tabeli, aby usunąć zależność od ścieżki wyszukiwania:

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

W Postgresie 9.4 lub później możesz również użyć to_regclass('myschema.mytbl') , co nie powoduje wyjątku, jeśli tabela nie zostanie znaleziona:

  • Jak sprawdzić, czy tabela istnieje w danym schemacie

Następnie wystarczy wysłać zapytanie do tabeli katalogu pg_attribute za istnienie kolumny:

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. Unikalne ograniczenie kombinacji dwóch kolumn?

  2. lista schematów z rozmiarami (względnymi i bezwzględnymi) w bazie danych PostgreSQL

  3. SpringBoot+Kotlin+Postgres i JSONB:org.hibernate.MappingException:Brak mapowania dialektu dla typu JDBC

  4. Jak zainstalować PostgreSQL na macOS

  5. Zmienna tabeli PostgreSQL