2008-05-21:Alter的用法(2008-05-27)
来源:互联网 发布:自动校准手机时间软件 编辑:程序博客网 时间:2024/04/29 23:07
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_old TO 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 typeALTER TABLE table [ * ] RENAME [ COLUMN ] column TO newcolumnALTER 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目前还不支持的功能:
- 对表中指定列声明缺省值或约束. 请参考 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 defaultALTER 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, name VARCHAR(40) NOT NULL,);INSERT INTO distributors SELECT * FROM temp;DROP TABLE temp;
ALTER TABLE table ALTER [ COLUMN ] column SET DEFAULT defaultALTER TABLE table ALTER [ COLUMN ] column ADD [ CONSTRAINT constraint ] table-constraint
- 2008-05-21:Alter的用法(2008-05-27)
- alter语句的用法
- mysql 的alter用法
- Alter的用法
- mysql 的alter用法
- db2的alter用法
- alter的详细用法
- ALTER TABLE的用法
- mysql的alter用法
- SQL ALTER TABLE的用法
- mssql alter table 的用法
- alter system register的用法
- mysql的alter语句用法
- Oracle alter语句的用法
- mysql的alter用法总结
- alter system register的用法
- mysql alter语句的用法
- SQL ALTER TABLE的用法
- 一段比较实用的JS导航条显隐例子
- 设计模式[4] Bridge Pattern 桥接模式
- C++基本功:全面掌握const、volatile和mutable关键字
- 固定表格头部信息
- 人生致命的八个经典问题
- 2008-05-21:Alter的用法(2008-05-27)
- GridView隐藏列取值
- 正则表达式 关于/num
- tomcat中的server.xml元素详解
- const 用法详解
- __mt_alloc源码分析(4)
- 积分是零分怎么办?
- 2张表关联字段的关联更新,代码如下:
- CImageMaster轻松显示图片