在使用PostgreSQL(或其他一些支持它的数据库)时,似乎最好使用TEXT数据类型,而不是character varying(NN),因为没有性能损失,可以通过删除和重新应用约束来调整最大可能长度,而不影响使用该字段的任何视图等.

但是,这个约束是如何应用的(SQL代码)?

推荐答案

当你创建表格时,你可以做这样的事情,

CREATE TABLE names (
  name text CONSTRAINT namechk CHECK (char_length(name) <= 255)
)

(100 is just a name for the constraint)

同样的情况也适用于ALTER TABLE,例如:

ALTER TABLE names
  ADD CONSTRAINT namechk CHECK (char_length(name) <= 255);

Postgresql相关问答推荐

PostgreSQL:如何 for each 唯一的客户输入/更新列中的数据,并将其递增1直到表的末尾

无法继承BYPASSRLS

如何获得一起满足数量要求的物品? (WHILE 循环还是 CTE?)postgresql

IF 块中的 CREATE FUNCTION 语句抛出错误,同时运行它自己的作品

订阅标签保存在哪个表中?

如何将 JSONB 对象数组合并为 PostgreSQL 中的单个对象

Spring:如何在 PostgreSQL 中使用 KeyHolder

保存 geodjango PointField 时出错

如何向文本字段添加长度约束

PostgreSQL ORDER BY 问题 - 自然排序

如何通过我在 PostgreSQL 中的数据库获取列大小和类型

LAG 函数和 GROUP BY

使用 postgres regexp_replace 将字符串列表替换为始终相同的字符串

在函数中返回字段作为插入结果

如何在 PostgreSQL 中插入多行

当成功有时会导致退出代码为 1 时,如何可靠地确定 pg_restore 是否成功?

如何缩小 pg_toast 表?

如何使 array_agg() 像 mySQL 中的 group_concat() 一样工作

如何在Postgres中分组并返回总和行

PostgreSQL - 如何将数字字段中的秒数转换为 HH:MM:SS