Alter table alter |change |modify 区别

来源:互联网 发布:mysql数据库的安装步骤 编辑:程序博客网 时间:2024/05/17 04:04

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

0 0