修改列Vs更改列

41 mysql alter-table

我知道,我们不能使用重命名列modify column syntax,但可以change column syntax.

我的问题是:主要用途是modify syntax什么?

例如,

alter table tablename change col1 col1 int(10) not null
Run Code Online (Sandbox Code Playgroud)

代替

alter table tablename modify col1 int(10) not null
Run Code Online (Sandbox Code Playgroud)



编辑
问题已被替换

主要用途是modify syntax什么?

以上问题由以下内容取代

为什么我们必须使用更改列而不是修改列?

Par*_*thy 60

更改列如果您已经创建了MySQL数据库,并且在您的某个列名称不正确之后做出决定,则无需删除它并进行替换,您只需使用更改列重命名即可.

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
Run Code Online (Sandbox Code Playgroud)

MODIFY COLUMN此命令执行CHANGE COLUMN可以执行的所有操作,但无需重命名列.如果需要在MySQL中调整列的大小,可以使用modify SQL命令.通过这样做,您可以允许比以前更多或更少的字符.您不能使用modify和other重命名列

ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;
Run Code Online (Sandbox Code Playgroud)

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


SmS*_*SmS 5

区别在于您是否要更改列名称,列定义或同时更改两者。

更改

可以重命名列或更改其定义,或同时重命名。

ALTER TABLE t1 CHANGE a b BIGINT NOT NULL

修改

可以更改列定义,但不能更改其名称

ALTER TABLE t1 MODIFY b INT NOT NULL

重命名栏

可以更改列名,但不能更改其定义。

ALTER TABLE t1 RENAME COLUMN b TO a


您可以查看文档以获取完整说明。

  • 最完整和简洁的答案。 (2认同)