Изменить столбец Vs change column

Я знаю, мы не можем переименовать столбец с помощью modify column syntax, но можем change column syntax.

Мой вопрос: какое основное использование modify syntax?

Например,

alter table tablename change col1 col1 int(10) not null

вместо

alter table tablename modify col1 int(10) not null




Отредактировано
Вопрос заменен

Каково основное использование modify syntax?

Следующий вопрос был заменен ниже

Почему нам нужно использовать столбец изменений вместо изменения столбца?

Ответ 1

ИЗМЕНИТЬ КОЛОННУЮ Если вы уже создали свою базу данных MySQL и решили после того, как один из ваших столбцов назван неправильно, вам не нужно удалять его и делать замену, вы можете просто переименовать его с помощью столбца change.

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;

ИЗМЕНИТЬ КОЛОННУЮ Эта команда делает все CHANGE COLUMN, но не переименовывает столбец. Вы можете использовать команду изменения SQL, если вам нужно изменить размер столбца в MySQL. Делая это, вы можете разрешить больше или меньше символов, чем раньше. Вы не можете переименовать столбец, используя модификацию и другие

ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;

Примечание: ALTER TABLE используется для изменения таблицы, чтобы изменить имя столбца, размер, столбец drop. CHANGE COLUMN и MODIFY COLUMN используются для поддержки ALTER TABLE. Эти две команды не являются независимыми.

Ответ 2

То же самое. Это было сделано для поддержки другого синтаксиса (Oracle ALTER TABLE, как я знаю). Вы можете использовать оба из них.

Примечание: синтаксис ALTER TABLE CHANGE old_col_name new_col_name позволяет переименовать столбец с помощью одной команды.

Ответ 3

Я нашел одно отличие после более чем часа усилий, пытаясь сделать столбец non auto_increment в auto_increment выражение: alter table doctor_experience изменить столбец id int (11) unsigned auto_increment работы, но выражение: alter table doctor_experience change column id id int (11) unsigned auto_increment сообщит об ошибке.

Ответ 4

Попробуйте "alter table doctor_experience change column id customer_id int (11) не null auto_increment;" Я надеюсь, что это сработает.