mysql笔记(9)--变更数据表结构

1,重新命名数据表
alter table A rename to B  //
数据表A改名为B
rename table A to B                //
数据表A改名为B
rename A toC,B to A,C to A    //
数据表A和数据表B互换名字
alter table S.A rename to T.A                //
数据库S里面的表A移动到数据库B里面
rename table S.A to T.A   //
数据库S里面的表A移动到数据库B里面
2,
改变数据列的类型
我们现在要把数据表A里面的一个smallint unsigned类型的数据列I再次改动为mediumint unsigned类型
alter table A motify I mediumint unsigned
alter table A change I I mediumint unsigned
注意change子句的特点:不仅能够改变数据列的类型,还能改变数据列的名字。这是modify子句所不能完成的。下面就把这个数据列改名了。
alter table A change I J mediumint unsigned
3,
将数据表由可变长度数据行转变成固定长度数据行
有的时候为了提高性能,需要做这样的转变,但有一点需要注意:必须用同一条alter命令来一次改变所有的数据列,不能仅仅改变一个数据列!举例如下:
create table A(name varchar(40),address varchar(80))
我们开始修改命令就应该是:
alter table A modify name char(40),modify address char(80);
4,
将数据表由固定长度数据行转变成可变长度数据行
如果觉得空间利用率不高,那就需要再转变回来,这个就很简单了,没有特别要求
alter table A modify name varchar(40)
5,
转换数据表类型
我们知道,MySQL数据库存在多种数据表类型,但每一种类型的特性并不相同。
如果你想让你的数据表支持事务处理机制。那就必须把它搞成BDBinnoBDB格式
alter table A type= BDB
alter table A type= InnoBD

Posted in 数据库 by 傻猫 at March 1, 2012.
Tags: mysql, 表结构

添加新评论