Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

[access查询]ALTER TABLE用法详解

时 间:2007-11-01 08:46:15
作 者:jimcloudy整理   ID:35  城市:福州
摘 要:ALTER TABLE用法详解
正 文:

Alter TABLE

名称

Alter TABLE — 更改表属性

Alter TABLE table [ * ]
    ADD [ COLUMN ] column type Alter TABLE table [ * ]
    Alter [ COLUMN ] column { SET DEFAULT value | Drop DEFAULT }
Alter TABLE table [ * ]
    RENAME [ COLUMN ] column TO newcolumn Alter TABLE table RENAME TO newtable 

输入

table 试图更改的现存表的名称.column 现存或新的列名称.type 新列的类型.newcolumn 现存列的新名称.newtable 表的新名称.

输出

Alter从被更名的列或表返回的信息.ERROR如果一个列或表不存在返回的信息.

描述

Alter TABLE 变更一个现存表的定义.ADD COLUMN形式用与 Create TABLE 一样的语法向表中增加一个新列/字段。Alter COLUMN形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只对新插入的行有效。RENAME子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。

如果要改变表的属性,你必须是表的所有者.

注意

COLUMN关键字是多余的,可以省略.

如果“*” 跟在一个表名后面,表示该命令要对该表和所有继承级别低于该表的表进行操作;缺省时,该属性(更改)不会增加到任何子表或修改任何子表的相关名称。当增加或修改一个超级表(译注:继承级别高的表)的属性时总是应该这样的。否则,象下面这样的在继承级上进行的查询

Select NewColumn FROM SuperClass*
    

将不能工作,因为子表会比超级表少一个属性。

在目前的实现里,新列/字段的缺省(值)和约束子句会被忽略。你可以随后用 Alter TABLESET DEFAULT形式设置缺省(值)。(你还不得不用 Update 把已存在行更新为缺省值。)

要修改表的结构,你必须是表的所有人。不允许更改系统表结构的任何部分。PostgreSQL 用户手册 里有关于继承的更多信息.

请参考 Create TABLE 部分获取更多有效参数的描述.

用法

向表中增加一个 VARCHAR 列:

Alter TABLE distributors ADD COLUMN address VARCHAR(30);
   

对现存列改名:

Alter TABLE distributors RENAME COLUMN address TO city;
   

对现存表改名:

Alter TABLE distributors RENAME TO suppliers;
   

兼容性

SQL92

ADD COLUMN形式是兼容的,除了上面说的缺省(值)和约束外。Alter COLUMN形式是完全兼容的。

SQL92 对 Alter TABLE 声明了一些附加的Postgres目前还不支持的功能:

Alter TABLE table ADD table constraint definition Alter TABLE table Drop CONSTRAINT constraint { RESTRICT | CASCADE }
      
增加或删除表的约束(比如象检查约束,唯一约束或外键约束)。要创建或删除一个唯一约束,对应地创建或删除一个唯一索引(参阅 Create INDEX )。要修改其他类型的约束,你需要重建和重载该表,使用 Create TABLE 的其他参数。

例如,删除表distributors的任何约束:

Create TA


Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助