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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于SQL大全[2]的所有评论