char_length是否可以替代JSON类型?

时间:2018-08-14 13:18:18

标签: postgresql

我们可以使用CHECKchar_length来限制TEXT类型的字段的大小。

CHECK (char_length(myField) <= 100)

由于JSONchar_length类型不起作用,我们如何以类似方式限制JSON类型的字段的大小(以字节或字符为单位)?

2 个答案:

答案 0 :(得分:2)

  

我们如何限制类型字段的大小(以字节或字符为单位)   JSON以类似的方式出现,因为char_length不适用于JSON类型?

将列JSON的数据类型投射到varchar也是一种选择。
这样,您可以使用CHAR_LENGTH函数。

CHECK (CHAR_LENGTH(myField::varchar) <= 100)

参见演示https://www.db-fiddle.com/f/9R84epPuwh9p2UrcB6NDFS/1

答案 1 :(得分:1)

您可以使用pg_column_size,它适用于任何列类型:

CHECK (pg_column_size(myField) <= 100)

它以八位字节为单位。