Informix 如何更加有效的创建主键和外键

Informix 如何更加有效的创建主键和外键,第1张

许多人喜欢在

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

data1CREATE

UNIQUE

INDEX

item_idx1

ON

item

(item_num)

IN

idx1

本例中,您可以在不同的数据库空间(dbspace)中放置索引和数据,避免与索引一起删除主键约束。

CREATE TABLE table_name ( column_name type ..., FOREIGN KEY (column_name) REFERENCES foreign_table_name (foreign_column_name) )其中foreign_table_name是你要建立的外键关联的表名,foreign_column_name是外键所关联的列名

希望采纳

为T_KC表的cName字段创建索引。最后当然主键当然是SID了 一定要标好哦~~·Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11951368.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存