ALTER在不同數據庫的用法

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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章