Можно ли ограничить длину символа размером байта для Postgres? - PullRequest
1 голос
/ 03 августа 2020

Я просто хотел бы знать, можно ли ограничить длину символа размером байта для Postgres. Был бы очень признателен, если бы вы мне это сказали.

Postgres версия: 9.2.17

1 Ответ

2 голосов
/ 03 августа 2020

Максимальная длина столбца varchar в символах в зависимости от кодировки базы данных. Если вы не хотите изменить свою базу данных для использования однобайтовой кодировки (что я бы настоятельно не рекомендовал), прямого способа сделать это нет.

Что вы можете сделать, так это использовать ограничение проверки, значение символа в массив байтов на основе указанной кодировки c, а затем проверяет длину массива:

alter table the_table
   add constraint check_byte_length 
   check ( length(convert_to(the_column, 'UTF-8')) <= 42 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...