mysql的alter语句中modify,rename,change详解

  • Post author:
  • Post category:mysql

直接先抛出结论:

rename和change都是用于修改名称的

rename修改的是表名称,而change修改的是表中的字段名称。

文章最后还有一些骚操作,Just for fun。

 

modify用于修改表中字段的数据长度,数据类型以及字段的约束条件的。

 

首先最简单的是rename,用于修改表名,语法如下

 alter table table_name rename [to] new table_name ;

这个语法没有什么可说的,to可要可不要,根据个人习惯,我一般是习惯性的加上to,就像使用别名时加上as一样。

然后就是change,用于修改字段名

alter table table_name change old_name new_name datatype...; --新字段需要完整定义

这里要注意的是你重新命名的新字段需要进行完整定义,并不是改字段名就可以。

最后就是modify,modify用于修改表中字段的数据长度,数据类型以及字段的约束条件的。

alter table table_name modify field datatype...;

这三者都同属于alter语句里面的内容,大概用法区别就是如此,语法也比较简单

 

接下来就是一些骚操作了

其实change也可以像modify一样修改表中字段的数据长度,数据类型以及字段的约束条件,只要你对字段进行完整的定义。

任意一表 有如下表结构,咱们就用change也来完成modify的工作,

我们执行如下语句,不进行改名的情况下(当然如果想,也可以改名),把原本varchar(10)类型,变为char(20),把非空约束拿掉。

看看这个语句能不能执行的通

这样看来,如果有需求是需要修改字段名,同时修改数据长度,数据类型以及字段的约束条件,就可以用这样的方法

 

不过 总的来说 还是以文章开头的用法来使用,修改列名就用change,修改数据类型以及字段的约束条件还是用modify。


版权声明:本文为qq_42006733原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。