Informix 如何更加有效的创建主键和外键
来源:百度文库 编辑:神马文学网 时间:2024/04/28 08:25:10
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)中放置索引和数据,避免与索引一起删除主键约束。
许多人喜欢在 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)中放置索引和数据,避免与索引一起删除主键约束。
Informix 如何更加有效的创建主键和外键
Informix 如何更加有效的创建主键和外键 - Unix爱好者家园
重新安装NOD32 EAV4.2,提示无法创建主键问题的解决方法 - NOD32技术文档 ...
如何更加年轻和长寿
如何综合掌握 DB2 和 Informix - Unix爱好者家园
菲欧娜·卡尔迈克尔:创建更加美好的明天
如何正确煎煮中药 让汤剂更加有效!
Informix 的用户权限管理
如何创建自己的WebQuest
Tag的创建和组织
Tag的创建和组织
销售电话:使其更加有效的四个关键规则
如何书写更加易于维护的css
如何让自己的孩子更加聪明!!
如何让自己的孩子更加聪明!!
WD2000: 如何创建带有不同首页或不同的奇偶页眉和页脚模板
WORD 2000: 如何创建带有不同首页或不同的奇偶页眉和页脚模板
几个常用的 Informix 命令
如何创建一个 Google 的友好网站?
如何创建自己的操作系统之开放性
如何创建自己的操作系统之纪律性
如何创建一个别人打不开的文件夹
如何创建“锁定计算机”的快捷方式
如何创建自己的一个团队