Oracle建表触发ORA-02270错误,外键引用主键不匹配如何解决?
错误原因
Store1表的主键为(Store, Department)联合主键,仅两个列的组合满足全局唯一性约束,单独的Store列、单独的Department列在Store1表中不存在主键或唯一键约束,不符合外键引用的基本要求。
修正后的建表语句
将Inventory表的独立外键声明改为联合外键即可正常执行:
CREATE TABLE Store ( Store_Name VARCHAR2(20) PRIMARY KEY NOT NULL, Year_Opened DATE, Manager VARCHAR2(20) NOT NULL ); CREATE TABLE Store1 ( Store VARCHAR2(20) NOT NULL REFERENCES Store(Store_Name), Department VARCHAR2(10) NOT NULL, PRIMARY KEY ( Store, Department ) ); CREATE TABLE Inventory ( Inventory_No VARCHAR2(8) PRIMARY KEY NOT NULL, Store VARCHAR2(20) NOT NULL, Department VARCHAR2(10) NOT NULL, CONSTRAINT fk_inventory_store1 FOREIGN KEY (Store, Department) REFERENCES Store1(Store, Department) );
内容的提问来源于stack exchange,提问作者md923
相关产品推荐
相关产品推荐

