有没有办法修改DOMAIN
Postgres 13.4中现有约束的细节?
我一直在尝试并检查文档,并怀疑答案是:“不DROP
。约束(或域和约束?),并重建它。”
这很尴尬,因为我有已经使用约束的字段和函数,所以我还必须使用一些级联的项目DROP
和CREATE
. 我可以这样做,但它有点牵涉。
例如,我有一个简单的域列表,如下所示:
DROP DOMAIN IF EXISTS domains.user_name;
CREATE DOMAIN domains.user_name AS
citext
NOT NULL
CONSTRAINT user_name_legal_values
CHECK(
VALUE IN (
'postgres',
'dbadmin',
'user_bender',
'user_cleanup',
'user_domo_pull'
)
);
COMMENT ON DOMAIN domains.user_name IS
'Valid user_name role names.';
我想通过再插入一个名称来更改VALUE IN
列表: 。CHECK
'user_analytics'
在不删除和重建域、约束或两者的情况下,这是否可能?
如果不是,我可以进行级联删除和重建,并为未来计算出DOMAIN
不适合此类事情的工具。我总是可以使用一个小的查找表来代替。我只是喜欢DOMAIN
它使参数和列的意图更清晰。