考虑以下场景:
CREATE DOMAIN dom_zipcode AS text;
ALTER DOMAIN dom_zipcode
ADD CONSTRAINT zipchk CHECK (char_length(VALUE) = 5);
现在,如果我想用 放弃该约束ALTER DOMAIN
,手册说:
ALTER DOMAIN name
DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]
但是我们怎么能找到constraint_name
呢?\dD
仅显示约束的定义(CHECK
语句)。
\dD dom_zipcode ;
List of domains
Schema | Name | Type | Modifier | Check
--------+-------------+------+----------+--------------------------------
public | dom_zipcode | text | | CHECK (char_length(VALUE) = 5)
(1 row)
我可以使用 转储模式pg_dump
,但我相信必须存在一种更优雅的方式来使用psql
终端建立它。
PostgreSQL 的系统目录
SQL 规范
INFORMATION_SCHEMA.DOMAIN_CONSTRAINTS
也可以在
domain_constraints
表中查询information_schema