Chinaunix首页 | 论坛 | 博客
  • 博客访问: 208991
  • 博文数量: 63
  • 博客积分: 1470
  • 博客等级: 上尉
  • 技术积分: 640
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-27 10:24
文章分类

全部博文(63)

文章存档

2014年(2)

2011年(3)

2010年(4)

2009年(9)

2008年(45)

我的朋友

分类: 数据库开发技术

2008-08-16 12:09:38

下面是几种不同数据库的升级脚本比较,实际上是对不同数据库版本的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;
阅读(646) | 评论(0) | 转发(0) |
0

上一篇:SQLPLUS命令

下一篇:CPCI

给主人留下些什么吧!~~