简单地说,change 可以将这个字段名字 属性 和 注释全给改了
而modify不可以改字段名字
例如:
alter table test change id changeid int上面是将id字段名改为changeid,类型改为int型
alter table test modify id int上面将id的类型改为int型,却无法修改id的名字
将表格修改为下面第二个表格形式。
用一条ALTER语句实现。
CHANGE:如果我们不只是修改单一列,而是用一条语句改变两个列,我们需要修改列的名称,同时更改他们的数据类型,这时就需要我们用到关键字CHANGE,可以在一条语句中放入多个CHANGE,在中间加上分隔的逗号即可。
比如原来的表两列,类型为VARCHAR(50),和VARCHAR(10),现在不止要更改列名,还要更改这两列的类型。
程序如下:
MODIFY:使用它可以只修改列的类型而不会干涉它的名称,假设要把proj_desc列的字符长度修改为VARCHAR(120)以容纳更多的说明文字,只要这么做就可以。
总结如下
(1)既更改列名也更改类型,用CHANGE
(2)只修改类型,用MODIFY,但这种方法比较慢,我们用另一种方法直接修改.frm文件,而不改动表本身。
mysql中alter语句中change和modify的区别为
当需要修改字段名称时使用change;当需要修改字段类型时使用modify
change和modify的具体使用场景如下
CHANGE子句对列进行重命名。重命名时,需给定旧的和新的列名称和列当前的类型。要把一个INTEGER列的名称从column_a变更到column_b:
ALTER TABLE t1 CHANGE column_a column_b INTEGER如果想要更改列的类型而不是名称, CHANGE语法仍然要求旧的和新的列名称,即使旧的和新的列名称是一样的。例如:
ALTER TABLE t1 CHANGE column_b column_b BIGINT NOT NULL使用MODIFY来改变列的类型,此时不需要重命名:
ALTER TABLE t1 MODIFY column_b BIGINT NOT NULL欢迎分享,转载请注明来源:内存溢出
评论列表(0条)