暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss 外键约束

openGauss小助手 2021-10-22
3053
数据库中,如果将所有的数据都存放到一张表中,会存在表结构不清晰、扩展性差等问题。因此需要设计多张表,通过外键(FOREIGN KEY)处理表之间的关系。一张表的FOREIGN KEY指向另一张表的PRIMARY KEY。
以表3-33 orders表结构为例,首先创建orders表。接着创建lineitem表,表示在线商品的信息,其中l_orderkey为FOREIGN KEY,表示订单编号,指向orders表的o_orderkey,如图3-8所示。
图3-8 orders、lineitem双表关系结构
执行下面的SQL语句,创建lineitem表。
CREATE TABLE lineitem(
l_orderkey INTEGER,
l_tax DOUBLE,
FOREIGN KEY (l_orderkey) REFERENCES orders(o_orderkey)
);
创建lineitem表之后,执行下面的SQL语句,插入数据:
INSERT INTO lineitem(l_orderkey, l_tax) VALUES(1, 2.34);
INSERT INTO lineitem(l_orderkey, l_tax) VALUES(2, 2.34);
实例中,插入(1,2.34)成功,但插入(2,2.34)失败。这是因为在执行操作的时候,数据库系统通过外键约束从orders表检查l_orderley对应的外键o_orderkey中的值,在存在记录{1}时接受了操作请求;在不存在记录{2}时,拒绝了操作请求。这样就保证了lineitem表中的每条记录在orders中都有对应的数据存在,即维护了引用完整性。实例中SQL语句执行结果状态如图3-9所示。

图3-9 SQL执行结果字段状态表
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论