有2个表,A和B
A我创建主键约束是这样的
CONSTRAINT tab_t_pk PRIMARY KEY (tab_col1,tab_col2)B表我建立外键约束的是
CONSTRAINT tab_t_fk FOREIGN KEY (tab_col1) REFERENCES A(tab_col1)创建b表的外键约束时,报:此列列表的唯一关键字或主键不匹配 这个错
请大家帮忙
A我创建主键约束是这样的
CONSTRAINT tab_t_pk PRIMARY KEY (tab_col1,tab_col2)B表我建立外键约束的是
CONSTRAINT tab_t_fk FOREIGN KEY (tab_col1) REFERENCES A(tab_col1)创建b表的外键约束时,报:此列列表的唯一关键字或主键不匹配 这个错
请大家帮忙
新增一个字段ID为主键代替你原来的联合主键,tab_col1,tab_col2这两个字段上使用唯一约束,B表references ID即可.
Hotel (hotelNo, hotelName, city)
Room (roomNo, hotelNo, type, price)
Booking (hotelNo, guestNo, dateFrom, dateTo,roomNo)
Guest (guestNo,guestName,guestAddress)红的都是主键,booking内的roomNo肯定是引用Room表的roomNo的外键呀那Room表中,不得把前2个字段都设置成联合主键吗?
这样的话,那怎样设置booking表中roomNo这个外键呢?
那这样就可以了。根据上边的题目,我这样做对吗?
OPER@tl>create table test(aaa number,bbb number,primary key(aaa,bbb));表已创建。OPER@tl>create table test2(aaa number references test(aaa));
create table test2(aaa number references test(aaa))
*
第 1 行出现错误:
ORA-02270: 此列列表的唯一关键字或主键不匹配
OPER@tl>alter table test add constraint xx unique(aaa);表已更改。OPER@tl>create table test2(aaa number references test(aaa));表已创建。OPER@tl>
真的每遇到过这种情况哦。
一般都是Booking含有 roomNo, hotelNo
Booking (roomNo)的fk不是Room (roomNo)
因为它会重复