mysql 中alter语句中change和modify的区别

mysql 中alter语句中change和modify的区别,第1张

change意为改变,modify意为修改

简单地说,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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8497093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存