Alter table alter |change |modify 区别

Alter table 语句有很多,具体可以参见MySQL 官网指导手册 : http://dev.mysql.com/doc/refman/5.7/en/alter-table.html

这里主要是对遇到的alter,change,modify区别进行总结。

语法:

ALTER  TABLE tbl_name  
  |ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  | CHANGE [COLUMN] old_col_name new_col_name column_definition
        [FIRST|AFTER col_name]
  | MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]

1.alter table table_name alter ...

看官网给出的语法结构,alter只能修改和删除默认值。而且alter语句只是修改.frm 文件而不涉及表中数据。所以操作很快。


2.alter table table_name change ...

change可以修改表中字段名,类型,默认值。但是会更新表中数据,操作会很慢。根据官网的说法如此,具体的,在项目中用此语句修改时,操作很快结束,看似没有修改表中数据。因为我用modify时结果很慢,一定更新了表中数据。或者项目中用到的是MariaDB 。有空会再做下实验。

ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c2 TEXT CHARACTER SET utf8;
 

3.alter table table_name modify...

modify只可以修改现有字段的类型和默认值等。而且modify会更新表中数据,操作较慢。


在Alter table 之后,最好用 analyze table table_name  更新一下index。

因此,修改默认值用alter ,修改字段名,类型直接用change

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值