欢迎 HiLanny 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心
加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 技术论坛 网站留言 娱乐中心 卓越资源
今天是:2008年11月21日 星期五  您现在位于: 首页 → 技术文章 → Informix如何更...
   Informix如何更加有效的创建主键和外键
作者:whitecrewhouse  出处:www.cublog.cn  更新时间: 2007年05月12日 
 
许多人喜欢在 CREATE TABLE 语句中使用约束键字来创建主键、外键、惟一性和其他约束。他们认为这是一种创建约束的简单且方便的方法。下面是一个例子:

CREATE TABLE sub_accounts (
sub_acc INTEGER PRIMARY KEY,
ref_num INTEGER NOT NULL,
ref_type INTEGER NOT NULL,
sub_descr CHAR(20),
FOREIGN KEY (ref_num, ref_type) REFERENCES accounts
(acc_num, acc_type));

 


遗憾的是,对于数据库的性能和管理,这样做并不好。当 Informix 读取以上 CREATE TABLE 语句时,它将自动创建两个索引,一个用于 sub_acc 上的主键,一个用于 ref_num 和 ref_type 上的外键。然后,它将自动为每一个索引指派一个系统编号,并将该编号用作索引名,对于开发人员和设计人员而言,这没有任何意义。更糟的是,这些索引是在数据 dbspace 内部创建的,因此会对数据库总体性能产生负面影响,所以 Informix 文档并不建议这样做。此外,在删除该表的主键或外键约束时,将自动删除这些索引;因此,如果需要在查询中使用这些索引,则需要重新创建它们。如果表中有数百万行,那么这可能是一个十分耗时的过程。 

因此,在表中创建或添加约束的正确过程如下:

创建不含约束键字的表。 
在将使用约束的列上创建索引。 
更改表来添加约束。 
下面是一个很好的例子: 

CREATE TABLE item(
Item_num  smallint,
Order_num  integer , 
Stock_num  smallint,
Manu_code  char(3) ,
Quantity  smallint,
Total_price  money(8)

IN data1; 
CREATE UNIQUE INDEX item_idx1 ON item (item_num) IN idx1; 
ALTER TABLE item ADD CONSTRIANT PRIMARY KEY (item_idx1);

 本例中,您可以在不同的数据库空间(dbspace)中放置索引和数据,避免与索引一起删除主键约束。
 (本文已被浏览 4219 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:I/O重定向详解及应用实例
下篇文章:Informix表空间计算
 相关文章:
MySQL优化系列 MYSQL备份策略
实现MySQL的Replication Linux下安装支持SSL连接的Mysql
MySQL安装与配置 MySQL SQL Profiler性能分析器
PHPMyadmin配置文件详解 建立MySQL的SSL连接通道
一组新的PHP插件实现MySQL的基础事务 MySQL 5 C API 访问数据库例子程序
实现基于php和MySQL的动态树型菜单 加速动态网站之 MySQL索引分析和优化
用PHP写MySQL数据库的用户认证系统 Mysql 5.0.22 Cluster for RedHat AS4-U2
在Linux高负载下mysql数据库彻底优化 Redhat AS4下架设MYSQL-MAX5.0.27集群
Oracle9中使用sqlplus连接远程数据库 Oracle PL/SQL的数据类型和常用函数
Informix 7.31 For SCO 5安装脚本 crash掉数据库的若干可能

相关搜索
查看百度中关于Informix如何更加有效的创建主键和外键的更多内容
查看google中关于Informix如何更加有效的创建主键和外键的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Linux.Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备05000455号
    Copyright (c) 2001-2008 Unix-cd.com. All Rights Reserved.