![](/img/trans.png)
[英]Foreign key referring to more than one primary key values(from one table) - Oracle SQL PLUS
[英]foreign key to a table having more than one primary key
这是我的双主键表
create table order_mattress
(
order_number int,
mattress_id int ,
primary key (order_number,mattress_id)
);
这是我的第二张桌子
create table mattress
(
mattress_id int IDENTITY(1,1) PRIMARY KEY,
mattress_name varchar(25)
);
我想将表中的mattress_id作为表order_mattress中的matsic_id的外键,这怎么可能,没有问题,因为第一个表中有双主键
我将其更改为具有3个表而不是2个表:
简单的订单表可保存唯一的订单号:
create table orders
(
order_number int IDENTITY(1,1) PRIMARY KEY,
);
可容纳所有独特床垫的床垫桌:
create table mattress
(
mattress_id int IDENTITY(1,1) PRIMARY KEY,
mattress_name varchar(25)
);
订购床垫表,然后用外键将床垫链接到订购。
create table order_mattress
(
order_number int FOREIGN KEY REFERENCES orders(order_number),
mattress_id int FOREIGN KEY REFERENCES mattress(mattress_id)
);
您输入的方向有误-如果mattress
表描述了床垫,则mattress_order
表应具有外键:
ALTER TABLE order_mattress
ADD FOREIGN KEY (mattress_id)
REFERENCES mattress(mattress_id)
另一个方向的确是不可能的,因为mattress_id
order_mattress
在order_mattress
不是唯一的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.