1、改变字段类型
有些数据库系统只允许ALTER TABLE 语句完成一个改动,但MySQL允许用一条ALTER TABLE 语句完成多个改动,只要用逗号把他们隔开。
改变某个数据列的数据类型,可使用MODIFY或CHANGE:
ALTER TABLE mytbl MODIFY i MEDIUMINT UNSIGNED; 或 ALTER TABLE mytbl CHANGE i i MEDIUMINT UNSIGNED;
CHANGE 子句需要写两遍数据列的名字,因为CHANGE能够(MODIFY 不能)在改变数据类型的同时重新命名一个数据列。如果想在改变其数据类型的同时把数据列i重新命名为k,只需将第二个i换成k即可。如果你只需要改变数据列名称而不改变类型,只需要写出CHANGE old_name new_name 再写出数据列当前定义即可。
2、改变字符集
ALTER TABLE mytbl MODIFY i CHAR(20) CHARACTER SET utf-8;
3、改变存储引擎ALTER TABLE tbl_name ENGINE = engine_name;
如果你打算让数据表改用另一种存储引擎时,能否达到你的目的还要取决于新老两种存储引擎的功能是否兼容。例如,以下转化就是不允许的:
- MEMORY引擎支持BLOB数据列
- 只有MyISAM支持FULLTEXT或SPATIAL索引
- 只有InnoDB支持外键
4、重命名数据表
也可以使用RENAME交换两个表名称ALTER TABLE tbl_name RENAME TO new_tbl_name; 或 RENAME TABLE old_name TO new_name;
RENAME TABLE t1 TO tmp, t2 TO t1, tmp TO t2;