作者
digoal
日期
2022-02-10
标签
PostgreSQL , constraint
https://blog.crunchydata.com/blog/postgres-constraints-for-newbies
SELECT * FROM (
SELECT
c.connamespace::regnamespace::text as table_schema,
c.conrelid::regclass::text as table_name,
con.column_name,
c.conname as constraint_name,
pg_get_constraintdef(c.oid)
FROM
pg_constraint c
JOIN
pg_namespace ON pg_namespace.oid = c.connamespace
JOIN
pg_class ON c.conrelid = pg_class.oid
LEFT JOIN
information_schema.constraint_column_usage con ON
c.conname = con.constraint_name AND pg_namespace.nspname = con.constraint_schema
UNION ALL
SELECT
table_schema, table_name, column_name, NULL, 'NOT NULL'
FROM information_schema.columns
WHERE
is_nullable = 'NO'
) all_constraints
WHERE
table_schema NOT IN ('pg_catalog', 'information_schema')
ORDER BY table_schema, table_name, column_name, constraint_name
;
table_schema | table_name | column_name | constraint_name | pg_get_constraintdef
--------------+------------------+-------------+-----------------------+----------------------
public | pgbench_accounts | aid | pgbench_accounts_pkey | PRIMARY KEY (aid)
public | pgbench_accounts | aid | | NOT NULL
public | pgbench_branches | bid | pgbench_branches_pkey | PRIMARY KEY (bid)
public | pgbench_branches | bid | | NOT NULL
public | pgbench_tellers | tid | pgbench_tellers_pkey | PRIMARY KEY (tid)
public | pgbench_tellers | tid | | NOT NULL
public | t1 | id | t1_pkey | PRIMARY KEY (id)
public | t1 | id | | NOT NULL
public | t2 | id | t2_pkey | PRIMARY KEY (id)
public | t2 | id | | NOT NULL
public | u | id | u_pkey | PRIMARY KEY (id)
public | u | id | | NOT NULL
(12 rows)
期望 PostgreSQL 增加什么功能?
PolarDB for PostgreSQL云原生分布式开源数据库
PostgreSQL 解决方案集合
德哥 / digoal's github - 公益是一辈子的事.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




