Создание структуры БД и манипулирование данными в СУБД MySQL. Пономарев А.А. - 70 стр.

UptoLike

Составители: 

Опция IGNORE является расширением MySQL по отношению к ANSI SQL92. Она
управляет работой ALTER TABLE при наличии дубликатов уникальных ключей в новой
таблице. Если опция IGNORE не задана, то для данной копии процесс прерывается и
происходит откат назад. Если IGNORE указывается, тогда для строк с дубликатами уни-
кальных ключей только первая строка используется, а остальные удаляются.
Можно запустить несколько выражений ADD, ALTER, DROP и CHANGE в одной
команде ALTER TABLE. Это является расширением MySQL по отношению к ANSI
SQL92, где допускается только одно выражение из упомянутых в одной команде ALTER
TABLE.
Опции CHANGE col_name, DROP col_name и DROP INDEX также яв-
ляются расширениями MySQL по отношению к ANSI SQL92.
Опция MODIFY представляет собой расширение Oracle для команды ALTER
TABLE.
Необязательное слово COLUMN представляет собой ''белый шум'' и может быть опу-
щено.
При использовании ALTER TABLE имя_таблицы RENAME TO
новое_имя без каких-либо других опций MySQL просто переименовывает файлы, соот-
ветствующие заданной таблице. В этом случае нет необходимости создавать временную та-
блицу. В выражении create_definition для ADD и CHANGE используется тот же
синтаксис, что и для CREATE TABLE. Следует учитывать, что этот синтаксис включает
имя столбца, а не просто его тип.
Столбец можно переименовывать, используя выражение CHANGE имя_столб-
ца create_definition. Чтобы сделать это, необходимо указать старое и новое
имена столбца и его тип в настоящее время. Например, чтобы переименовать столбец
INTEGER из a в b, можно сделать следующее:
mysql> ALTER TABLE t1 CHANGE a b INTEGER;
При изменении типа столбца, но не его имени синтаксис выражения CHANGE все
равно требует указания обоих имен столбца, даже если они одинаковы. Например:
mysql> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;
Однако, начиная с версии MySQL 3.22.16a, можно также использовать выражение
MODIFY для изменения типа столбца без переименовывания его:
mysql> ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
При использовании CHANGE или MODIFY для того, чтобы уменьшить длину
столбца, по части которого построен индекс (например, индекс по первым 10 символам
столбца VARCHAR), нельзя сделать столбец короче, чем число проиндексированных сим-
волов.
При изменении типа столбца с использованием CHANGE или MODIFY MySQL пы-
тается преобразовать данные в новый тип как можно корректнее.
В версии MySQL 3.22 и более поздних можно использовать FIRST или ADD ...
AFTER имя_столбца для добавления столбца на заданную позицию внутри таблич-
ной строки. По умолчанию столбец добавляется в конце. Начиная с версии MySQL 4.0.1,
можно также использовать ключевые слова FIRST и AFTER в опциях CHANGE или
MODIFY.
Опция ALTER COLUMN задает для столбца новое значение по умолчанию или
удаляет старое. Если старое значение по умолчанию удаляется и данный столбец может
принимать значение NULL, то новое значение по умолчанию будет NULL. Если столбец не
может быть NULL, то MySQL назначает значение по умолчанию. Опция DROP INDEX
удаляет индекс. Это является расширением MySQL по отношению к ANSI SQL92. Если
70