修改Vs的变化列列(Modify column Vs change column)

2019-07-19 14:56发布

我知道,我们不能重命名使用列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

上述问题被替换以下

为什么我们要使用更改列,而不是修改列?

Answer 1:

更改列如果您已经创建了MySQL数据库,并在以后决定你的一列被命名不正确,你并不需要将其删除,并进行替换,您可以使用更改列只需重命名它。

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

修改列的这个命令做的一切更改列可以,但不重新命名column.You如果您需要在MySQL中调整列可以使用修改SQL命令。 通过这样做,你可以允许比以往更多或更少的字符。 使用修改等不能重命名列

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

注:ALTER TABLE用于更改表指更改列名,大小,删除列。 更改列和MODIFY COLUMN命令不能没有ALTER TABLE命令的帮助下使用。



Answer 2:

我在努力使非AUTO_INCREMENT列到AUTO_INCREMENT语句中找到了一个多小时的努力后,一个区别:ALTER TABLE doctor_experience修改列id INT(11)无符号AUTO_INCREMENT作品,但statment:ALTER TABLE doctor_experience更改列id id INT(11 )无符号AUTO_INCREMENT会报告错误。



Answer 3:

这是一样的。 有人做过,以支持另一种语法(甲骨文ALTER TABLE我所知)。 您可以使用这两者。

注: ALTER TABLE CHANGE old_col_name new_col_name语法允许使用一个命令重命名列。



文章来源: Modify column Vs change column