摘要
modify和change都是数据库中修改列属性的关键字,但是俩者在细节上有着一些区别,本文主要介绍modify和change的异同点
相同点
都是用来修改列属性的,执行成功之后都会将新属性替换原有属性
区别
modify是用来修改列属性中较微小的操作的,例如修改列的属性,重命名时无法使用modify
change是用来修改列属性中幅度变化较大的操作的,例如修改列名
注意:使用change只修改列属性不修改列名时,需将列名写俩遍,因为change一使用就必须修改列名,不建议仅修改列属性时使用change
为什么修改列属性是微小的操作,而修改列名是幅度变化较大的操作呢?
注意:修改列名对于表来说牵扯的东西会更多一点,而修改列属性仅仅针对了这一列而言,因此修改列属性是较小的操作
建议需要修改列名时再使用change,修改列属性时只使用modify
示例:
-- 假设id本来没有非空约束,增加非空约束:
ALTER TABLE name modify id int not null;
-- 使用change同样修改id属性:增加非空约束
ALTER TABLE name change id id int not null;
-- 修改id列名为Sno:
ALTER TABLE name change id Sno int not null;
可以看出修改属性时使用change比使用modify稍麻烦一些