Spec-Zone .ru
спецификации, руководства, описания, API
|
В некоторых случаях MySQL тихо изменяет спецификации столбца от данных в a CREATE TABLE
или ALTER
TABLE
оператор. Они могли бы быть изменениями к типу данных к атрибутам, связанным с типом данных,
или к индексировать спецификации.
Все изменения подвергаются внутреннему пределу размера строки 65 535 байтов, которые могут заставить некоторые попытки изменений типа данных перестать работать. См. Раздел D.10.4, "Пределы на Столбце таблицы граф и Размер Строки".
Столбцы, которые являются частью a PRIMARY KEY
делаются NOT NULL
даже если не объявленный тем путем.
Конечные пробелы автоматически удаляются из ENUM
и SET
элемент оценивает, когда таблица составляется.
MySQL отображает определенные типы данных, привыкшие другими поставщиками базы данных SQL к типам MySQL. См. Раздел 11.8, "Используя Типы данных от Других Механизмов базы данных".
Если Вы включаете a USING
пункт, чтобы определить
индексировать тип, который не разрешается для данного механизма хранения, но есть, другой индексирует
тип, доступный, который механизм может использовать, не влияя на результаты запроса, механизм использует
доступный тип.
Если строгий режим SQL не включается, a VARCHAR
столбец со спецификацией длины, больше чем 65535,
преобразовывается в TEXT
, и a 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, используемый тип данных кроме того, Вы, проблема a DESCRIBE
или SHOW CREATE TABLE
оператор после создания или изменения таблицы.
Определенные другие изменения типа данных могут произойти, если Вы сжимаете таблицу, используя myisampack. См. Раздел 14.3.3.3, "Сжатые Табличные Характеристики".