gpt4 book ai didi

oracle - 是否可以将唯一约束设置为另一个表中的外键?

转载 作者:行者123 更新时间:2023-12-04 11:46:03 25 4
gpt4 key购买 nike

是否可以将唯一约束设置为另一个表中的外键?
如果是,您将如何声明?

您将如何分配候选键?
是否可以?

例子:
我有一个产品表,其中包括:

prod_id, prod_name, prod_price, QOH

我希望 prod_name 链接到发货表的位置:
desp_id, prod_name, shelfLoc, quantity

我在想的是我可能需要创建一个独特的约束,它看起来像这样:
ALTER TABLE product
ADD CONSTRAINT prod_nameID_uc
UNIQUE (prod_id,prod_name)

我想知道的是,是否可以在调度表中将唯一键称为外键。我必须有 prod_name而不是 prod_id在发送表中,这样信息在阅读时对用户更有意义,而不是看到一个 id 号。
我在 oracle 上使用 iSQL plus。

最佳答案

在 Oracle FOREIGN KEY 中引用 UNIQUE 约束是完全可能的:

SQL> create table products (
2 prod_id number not null
3 , prod_name varchar2 (30) not null
4 , constraint prod_pk primary key ( prod_id )
5 , constraint prod_uk unique ( prod_name )
6 )
7 /

Table created.

SQL> create table despatch (
2 desp_id number not null
3 , prod_name
4 , constraint desp_pk primary key ( desp_id )
5 , constraint desp_prod_pk foreign key ( prod_name )
6 references products ( prod_name )
7 )
8 /

Table created.

SQL>

然而,这是不好的做法。将主键与唯一键一起使用的主要原因是提供用于外键的合成键。我是你,我会担心你的老师会给你一个 assignment riddled with bad practice .

关于oracle - 是否可以将唯一约束设置为另一个表中的外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1320093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com