标签:默认值 存储 控制 line lin ace 并发控制 场景 就会
mysql的alter table 本质上是通过创建临时表,然后将数据copy到临时表里,之后删除原来的表,重命名临时表 去做的alter操作
不能设置值为当前DB中已经用到过的最大值。
alter table t21 auto_increment=13;
mysql默认选择inplace,如果存储引擎不支持,就会选中copy。
InnoDB 对于在共享表空间中的表,使用的是COPY进行的alter table。此类会增加表的空间使用量,因为alter完成之后使用的额外空间并不会释放会操作系统。
使用INPLACE的算法场景包括:
LOCK= DEFAULT | NONE | SHARED | EXCLUSIVE
modify
,但是在某些方面会比较慢。 比如: 如果不是重命名的话, change
会对列命名两次first
/ after
更改列顺序change
更加方便first
/ after
更改列顺序demo
alter table temp_table change name name_new varchar(100);
alter table temp_table change name name varchar(100);
alter table temp_table modify name varchar(200) after id ;
alter table temp_table alter name set default ‘‘;
备注:
change
是mysql对标准sql的拓展,modify
是mysql对oracel的兼容。
modify
orchange
去更改数据类型的时候,mysql会尝试转化存在的列的值到新的类型中。
注意: 通过change
重命名列
标签:默认值 存储 控制 line lin ace 并发控制 场景 就会
原文地址:https://www.cnblogs.com/qulianqing/p/13294053.html