Изменить столбец 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;"
Я надеюсь, что это сработает.