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

5.5.4. Объединение или Разделение Операторов DDL

Перед введением онлайнового DDL это была обычная практика, чтобы объединить много операций DDL в сингл ALTER TABLE оператор. Поскольку каждый ALTER TABLE оператор включил копирование и восстановление таблицы, было более эффективно произвести несколько изменений в той же самой таблице сразу, так как те изменения могли все быть сделаны с синглом, восстанавливают работу для таблицы. Нижняя сторона была то, что код SQL, включающий операции DDL, было более трудно поддержать и снова использовать в различных сценариях. Если определенные изменения отличались каждый раз, когда Вам, возможно, придется создать новый комплекс ALTER TABLE для каждого немного отличающегося сценария.

Для операций DDL, которые могут быть сделаны оперативные, как показано в Таблице 5.9, "Сводка Онлайнового Состояния для Операций DDL", теперь можно разделить их на человека ALTER TABLE операторы для более легких сценариев и обслуживания, не жертвуя эффективностью. Например, Вы могли бы взять сложный оператор, такой как:

alter table t1 add index i1(c1), add unique index i2(c2), change c4_old_name c4_new_name integer unsigned;

и разломайте это на более простые части, которые могут быть протестированы и выполнены независимо, такие как:

alter table t1 add index i1(c1);alter table t1 add unique index i2(c2);alter table t1 change c4_old_name c4_new_name integer unsigned not null;

Вы могли бы все еще использовать многослойный ALTER TABLE операторы для: