GBase 8c 数据定义-外键约束

    GBase 8c数据库支持外键约束。

    外键约束指定某列(或一组列)中的值必须匹配出现在另一表中某些行的值,这维持了两个关联表之间的引用完整性。

    例如使用过多次的表products:

CREATE TABLE products (
    product_no integer PRIMARY KEY,
    name text,
    price numeric
);

假设还有一个存储这些产品订单的表。我们希望保证订单表中只包含真正存在的产品的订单。因此在订单表中定义一个引用产品表的外键约束:

CREATE TABLE orders (
    order_id integer PRIMARY KEY,
    product_no integer REFERENCES products (product_no),
    quantity integer
);

    这样就不可能创建包含不存在于产品表中的product_no值(非空)的订单。

    在这种情况下,订单表是引用表而产品表是被引用表。相应地,也有引用和被引用列的说法。

    我们也可以把上述命令简写为:

CREATE TABLE orders (
    order_id integer PRIMARY KEY,
    product_no integer REFERENCES products,
    quantity integer
);

    因为如果缺少列的列表,则被引用表的主键将被用作被引用列。

    外键也可以约束和引用一组列。同样,它需要被写成表约束的形式。下面是一个例子:

CREATE TABLE t1 (
  a integer PRIMARY K
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值