Ответ
В PostgreSQL существуют два основных типа для хранения строк переменной длины:
VARCHAR(n)(илиCHARACTER VARYING(n)): Строка ограниченаnсимволами (максимумn = 10485760). При попытке вставить более длинную строку возникнет ошибка.TEXT(илиVARCHARбез указания длины): Теоретический лимит — около 1 ГБ (ограничено типомvarlena). Практически лимитируется максимальным размером страницы (по умолчанию 8 КБ) для inline-хранения.
Пример и рекомендации:
CREATE TABLE example (
short_code VARCHAR(10), -- Жёсткое ограничение: 10 символов
description TEXT, -- Фактически неограниченная длина (1 ГБ)
flexible VARCHAR -- Аналогично TEXT, синтаксический сахар
);
Практический совет: В PostgreSQL между VARCHAR(n) и TEXT нет разницы в производительности. VARCHAR(n) обеспечивает проверку целостности данных на уровне БД, а TEXT — более гибкий. Выбор — вопрос соглашений в проекте.