ALTER在不同数据库的用法
2007-12-28 12:01
下面是几种不同数据库的升级脚本比较,实际上是对不同数据库版本的ALTER命令用法的比较
约定:[]内的内容可有可无 1,修改字段类型[关键字:modify&alter] mysql: ALTER TABLE 表名 MODIFY [COLUMN] 字段名 字段类型定义; sqlserver: ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型定义; [这里在修改约束的时候需要用到专门的关键字CONSTRAINT] oracle: ALTER TABLE 表名 MODIFY ( 字段名 字段类型定义); [Oracle,修改类型时所改字段的数据必须为空:] 2,增加和删除字段 增加字段 ALTER TABLE 表名 ADD 字段名 字段类型定义; 删除字段 mysql: ALTER TABLE 表名 DROP[COLUMN] 字段名 sqlserver: ALTER TABLE 表名 DROP COLUMN 字段名 3,修改列名 mysql: 可以用CHANGE同时修改列名和列类型,如: ALTER TABLE table CHANGE column newcolumn BIT NOT NULL 这里column和newcolumn可以相同, 也就是说,CHANGE可以取代MODIFY了,可以用来单纯修改列类型或者列名 sqlserver: 暂时只能调用存储过程 EXEC SP_RENAME table.column','newcolumn','COLUMN' oracle: 在817版本以上支持RENAME了,没有具体测试过,9i以上版本比较保险 ALTER TABLE table RENAME COLUMN column TO newcolumn; |