Spec-Zone .ru
спецификации, руководства, описания, API
|
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
).