这个问题的灵感来自this question,this answer和this blog article。
当有人可以使用带有约束的文本时,为什么要使用varchar(字符变化),根据前面提到的链接,这使得将来很容易操作架构。与使用带有约束的文本相比,使用varchar有什么理由/优势吗?
这里是使用约束为illustrated here的文本的示例。
CREATE DOMAIN dom_username TEXT CHECK (
LENGTH(VALUE) > 3 AND
LENGTH(VALUE) < 200 AND
VALUE ~ '^[A-Za-z][A-Za-z0-9]+$'
);
CREATE TABLE user (
name dom_username,
email TEXT
);