15.1.21.7 Тихие изменения спецификаций столбцов
В некоторых случаях MySQL молча изменяет спецификации столбцов по сравнению с указанными в инструкции CREATE TABLE или ALTER TABLE. Это могут быть изменения типа данных, атрибутов, связанных с типом данных, или спецификации индекса.
Все изменения подчиняются внутреннему ограничению размера строки в 65535 байт, что может привести к неудаче некоторых попыток изменения типа данных. См. Раздел 10.4.7, «Ограничения на количество столбцов таблицы и размер строки».
Столбцы, которые являются частью
PRIMARY KEY, делаютNOT NULL, даже если это не объявлено явно.Пробелы в конце автоматически удаляются из значений членов
ENUMиSETпри создании таблицы.MySQL отображает некоторые типы данных, используемые другими поставщиками СУБД, в типы MySQL. См. Раздел 13.9, «Использование типов данных из других систем баз данных».
Если вы включаете условие
USINGдля указания типа индекса, который не разрешен для данного движка хранения, но существует другой тип индекса, который движок может использовать без влияния на результаты запросов, движок использует доступный тип.Если режим строгого SQL не включен, столбец
VARCHARсо спецификацией длины, большей 65535, преобразуется вTEXT, а столбецVARBINARYсо спецификацией длины, большей 65535, преобразуется вBLOB. В противном случае в обоих случаях возникает ошибка.-
Указание атрибута
CHARACTER SET binaryдля типа данных символьных данных приводит к созданию столбца как соответствующего типа данных двоичных данных:CHARстановитсяBINARY,VARCHARстановитсяVARBINARY, аTEXTстановитсяBLOB. Для типов данныхENUMиSETэтого не происходит; они создаются как объявлены. Предположим, что вы указали таблицу с помощью этого определения:CREATE TABLE t ( c1 VARCHAR(10) CHARACTER SET binary, c2 TEXT CHARACTER SET binary, c3 ENUM('a','b','c') CHARACTER SET binary );Полученная таблица имеет следующее определение:
CREATE TABLE t ( c1 VARBINARY(10), c2 BLOB, c3 ENUM('a','b','c') CHARACTER SET binary );
Чтобы увидеть, использовал ли MySQL тип данных, отличный от указанного вами, выполните инструкцию DESCRIBE или SHOW CREATE TABLE после создания или изменения таблицы.
Некоторые другие изменения типов данных могут произойти, если вы сжимаете таблицу с помощью myisampack. См. Раздел 18.2.3.3, «Характеристики сжатых таблиц».
© 2025 Oracle
Licensed under the GPLv2 License.