我有一个带有复合主键的产品表,并且复合主键的工作正常,但每当我尝试将此复合主键用作另一个表中的外键时,它就会起作用
主要表格产品:
create table product
(
product_id number(4) ,
sub_product_id number(3) ,
category_id references category,
product_name varchar2(40),
product_brand varchar2(30),
price varchar2(15) ,
image_url varchar2(200) ,
color varchar2(30) ,
intmemory varchar2(30) ,
extmemory varchar2(30) ,
primary key(product_id,sub_product_id)
)
外键表购物车:
create table cart
(
userid references register1 ,
product_id,
sub_product_id,
quantity number(3) ,
delivery_time varchar2(100) ,
foreign key(product_id ,sub_product_id) references product(product_id ,sub_product_id)
)
主表工作正常,但外键不起作用,当我插入相同的(product_id , sub_product_id)
我想要的是购物车表格不会有相同product_id, sub_product_id
的多个条目
答案 0 :(得分:1)
作为Jens mentioned,外键与唯一键不同。您可以简单地创建一个唯一的密钥:
ALTER TABLE cart
ADD CONSTRAINT constraint_name
UNIQUE (product_id , sub_product_id);