sql >> Databáze >  >> RDS >> PostgreSQL

Určení OID tabulky v Postgres 9.1?

Chcete-li získat OID tabulky, přetypujte na typ identifikátoru objektu regclass (při připojení ke stejné DB):

SELECT 'mytbl'::regclass::oid;

Toto najde první tabulku (nebo zobrazení atd.) s daným názvem podél search_path nebo vyvolá výjimku, není-li nalezena.

Schema-kvalifikujte název tabulky pro odstranění závislosti na vyhledávací cestě:

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

V Postgres 9.4 nebo později můžete také použít to_regclass('myschema.mytbl') , který nevyvolá výjimku, pokud tabulka není nalezena:

  • Jak zkontrolovat, zda tabulka v daném schématu existuje

Poté stačí zadat dotaz na katalogovou tabulku pg_attribute pro existenci sloupce:

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. Získejte počet dní v měsíci v PostgreSQL

  2. Jak zajistit, aby vaše databáze MySQL nebo MariaDB byla vysoce dostupná na AWS a Google Cloud

  3. Jak funguje operátor SOUNDS LIKE v MySQL

  4. @BatchSize chytré nebo hloupé použití?