快速业务通道

SQL大全[2]

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-22
ULT
把引用列的数值设置为它们的缺省值.
如果主键字段经常更新,那么我们给 REFERENCES 字段增加一个索引可能是合适的,这样与 REFERENCES 字段 相关联的 NO ACTION 和 CASCADE 动作可以更有效地执行.
DEFERRABLE 或 NOT DEFERRABLE
这两个关键字设置该约束是否可推迟.一个不可推迟的约束将在每条命令之后 马上检查.可以推迟的约束检查可以推迟到事务结尾 (使用 SET CONSTRAINTS命令).缺省是 NOT DEFERRABLE.目前只有外键约束 接受这个子句.所有其它约束类型都是不可推迟的.
INITIALLY IMMEDIATE or INITIALLY DEFERRED
如果约束是可推迟的,那么这个子句声明检查约束的缺省时间. 如果约束是 INITIALLY IMMEDIATE,那么每条语句之后就检查它.这个是缺省.如果约束是 INITIALLY DEFERRED,那么只有在事务结尾才检查它. 约束检查的时间可以用 SET CONSTRAINTS命令修改.
诊断
CREATE
如果表成功创建,返回此信息.
ERROR
如果表创建失败返回这条信息.通常它还带着一些描述性文本, 比如∶ ERROR: Relation ''table'' already exists,这个错误出现在运行时 -- 如果声明的表已经在数据库中存在了.
注意
如果一个应用使用了 OID 标识表中的特定行,那么我们建议在该表的 oid 字段上创建一个唯一约束,以确保该表的 OID 即使在计数器重叠之后也是唯一的.如果你需要一个整个数据库范围的唯一 标识,那么就要避免假设 OID 是跨表唯一的,你可以用 tableoid 和行 OID 的组合来实现这个目的. (将来的 PostgreSQL 很可能为每个表使用独立 的 OID 计数器,因此包括 tableoid 组成数据库范围内 的唯一标识将是必须的,而不是可选的.)
提示: 对那些没有主键的表,我们不建议使用 WITHOUT OIDS, 因为如果既没有 OID 又没有唯一数据键字,那么就很难标识特定的行.
PostgreSQL 自动为每个唯一约束和主键约束 创建一个索引以确保唯一性.因此,我们不必为主键字段创建明确的索引. (参阅 CREATE INDEX获取更多信息.)
SQL 92 标准认为 CHECK 字段约束只能引用它们施加的字段; 只有 CHECK 表约束可以引用多个字段. PostgreSQL 并未强制这样的限制; 它把字段约束和表约束看成是类似的.
唯一约束和主键在目前的实现里是不能继承的. 这样,如果把继承和唯一约束组合在一起会导致无法运转.
例子
创建表 films 和 distributors∶
CREATE TABLE films (
    code        CHARACTER(5) CONSTRAINT firstkey PRIMARY KEY,
    title       CHARACTER VARYING(40) NOT NULL,
    did         DECIMAL(3) NOT NULL,
    date_prod   DATE,
    kind        CHAR(10),
    len         INTERVAL HOUR TO MINUTE
);
CREATE TABLE distributors (
     did    DECIMAL(3) PRIMARY KEY DEFAULT NEXTVAL(''serial''),
     name   VARCHAR(40) NOT NULL CHECK (name <> '''')
);
创建一个带有 2 维数组的表∶
CREATE TABLE array (
    vector INT[][]
);
为表 films 定义一个唯一表约束. 唯一表约束可以在表的一个或多个字段上定义∶
CREATE TABLE films (
    code       

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号