Spec-Zone .ru
спецификации, руководства, описания, API

14.2.5.12. Увеличьте Оперативный Размер VARCHAR

VARCHAR размер может быть увеличен, используя оперативное ALTER TABLE, как в этом примере:

ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);

Это - истина пока число байтов длины, требуемых a VARCHAR столбец остается тем же самым. Для VARCHAR значения от 0 до 255, байт одной длины обязан кодировать значение. Для VARCHAR значения 256 байтов или больше, два байта длины требуются. В результате оперативный ALTER TABLE только поддерживает увеличение VARCHAR размер от 0 до 255 байтов или увеличение VARCHAR размер от значения, равного или больше чем 256 байтов.

Оперативный ALTER TABLE не поддерживает увеличение VARCHAR размер меньше чем от 256 байтов до значения, равного или больше чем 256 байтов. В этом случае число необходимых байтов длины изменилось бы от 1 до 2, который только поддерживается табличной копией (ALGORITHM=COPY). Например, попытка измениться VARCHAR размер столбца от 255 до 256 оперативных использований ALTER TABLE возвратил бы ошибку:

ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(256);ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot changecolumn type INPLACE. Try ALGORITHM=COPY.

Уменьшение VARCHAR размер, использующий оперативный ALTER TABLE не поддерживается. Уменьшение VARCHAR размер требует табличной копии (ALGORITHM=COPY).