2008-05-21:Alter的用法(2008-05-27)

2008-05-21:Alter的用法(2008-05-27),第1张

概述2008-05-27: 为表增加一个字段: ALTER TABLE table ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] 为表增加一个索引: ALTER TABLE table ADD CONSTRAINT multifieldindex 2008-05-21: 修改表的字段名: ALTER TABLE table_na

2008-05-27:
为表增加一个字段:
ALTER table table ADD ColUMN fIEld type[(size)] [NOT NulL] [CONSTRAINT index]
为表增加一个索引:
ALTER table table ADD CONSTRAINT multifIEldindex

2008-05-21:
修改表的字段名:
ALTER table table_name REname column_oldTO column_new;

2008-05-27:
删除表中字段:
ALTER table table DROP ColUMN fIEld
删除表中索引:
ALTER table table DROP CONSTRAINT indexname

2008-05-26:
修改系统参数:
ALTER SYstem SET timed_statistics=FALSE ScopE=MEMORY;

ALTER table 名称

ALTER table — 更改表属性

ALTER table table  [ * ] ADD [ ColUMN ] column type ALTER table table  [ * ] REname [ ColUMN ] column TO newcolumn ALTER table table  REname TO newtable
输入 table 试图更改的表的名称. column 现存或新的列名称. type 新列的类型. newcolumn 现存列的新名称. newtable 现存表(译注:原文是column,错了)的新名称. 输出 ALTER 从被更名的列或表返回的信息. NEW 追加列返回的信息. ERROR 如果一个列或表不存在返回的信息. 描述

ALTER table 变更一个现存表的定义.新的列和其类型是和用CREATE table创建表时一样的风格声明的,而且其受到和用CREATE table创建表时一样的限制.REname 语句可以在不对表中数据造成任何影响的情况下更改表名或列名.因此,此命令执行后表或列仍然是和原先一样的类型和尺寸.

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

注意

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

如果“[*]” 跟在一个表名后面,表示该命令要对该表和所有继承级别低于该表(该表父表)的表进行 *** 作.Postgresql U用户手册 里有关于继承的更多信息.

请参考 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

ALTER table/REname 是Postgres 语言的扩展.

sql92 对 ALTER table 声明了一些附加的Postgres目前还不支持的功能:

ALTER table table ALTER [ ColUMN ] column  SET DEFAulT default ALTER table table ALTER [ ColUMN ] column  ADD [ CONSTRAINT constraint ] table-constraint
对表中指定列声明缺省值或约束. 请参考 CREATE table 获取缺省值和约束语句的语法.如果已经有一个缺省值,它将被新值取代.如果原有约束存在,它们将和新约束用逻辑与(AND)共同使用.


当前,要向现存的列设置新的缺省值或约束,此表必须重建和重新装载:

CREATE table temp AS SELECT * FROM distributors;DROP table distributors;CREATE table distributors ( dID DECIMAL(3) DEFAulT 1,name VARCHAR(40) NOT NulL,city VARCHAR(30));INSERT INTO distributors SELECT * FROM temp;DROP table temp;
(译注:这里的 temp 表也有前面同样问题.)
ALTER table table  DROP DEFAulT default ALTER table table  DROP CONSTRAINT constraint { RESTRICT | CASCADE }
上面两句将表中原有的缺省值或约束删除.如果声明了 RESTRICT ,那么只有无依赖性的约束可以被删除.如果声明了 CASCADE ,任何和依赖于此约束的约束都将被删除.


当前,要将表中某列原有的缺省值或约束删除,表必须重建和重新装载:

CREATE table temp AS SELECT * FROM distributors;DROP table distributors;CREATE table distributors AS SELECT * FROM temp;DROP table temp;
ALTER table table  DROP [ ColUMN ] column { RESTRICT | CASCADE }
上面语句将表中某列删除.如果声明了 RESTRICT,那么只有一个没有被别的列依赖的列可以被删除.如果声明了 CASCADE,那么所有依赖于该列的列都将被删除.


当前,要删除一个现存的列,表必须重新创建和重新装载:

CREATE table temp AS SELECT dID,city FROM distributors;DROP table distributors;CREATE table distributors ( dID DECIMAL(3) DEFAulT 1,);INSERT INTO distributors SELECT * FROM temp;DROP table temp;
总结

以上是内存溢出为你收集整理的2008-05-21:Alter的用法(2008-05-27)全部内容,希望文章能够帮你解决2008-05-21:Alter的用法(2008-05-27)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1180790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存