How to list all constraints of a table in PostgreSQL by schema?
-
07-02-2021 - |
سؤال
Yes, I'm aware there is a question very similar to mine, the difference is that I want all constraints, including not null, which no answer is able to do.
المحلول
Specifically for the "not null" part, thanks to psql -E
to see what happens when you do \d+
, and adapted/simplified from it, the following works:
test=# CREATE TABLE nonull (id integer NOT NULL);
CREATE TABLE
test=# \d+ nonull
Table "public.nonull"
Column | Type | Modifiers | Storage | Stats target | Description
--------+---------+-----------+---------+--------------+-------------
id | integer | not null | plain | |
test=# SELECT a.attname, a.attnotnull FROM pg_catalog.pg_attribute a WHERE a.attrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname='nonull') AND a.attnum > 0 and NOT a.attisdropped;
attname | attnotnull
---------+------------
id | t
(1 row)
لا تنتمي إلى dba.stackexchange