【问题标题】:SQL : ORA-02270: no matching unique or primary key for this column-listSQL : ORA-02270: 此列列表没有匹配的唯一键或主键
【发布时间】:2021-11-16 09:14:24
【问题描述】:
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
        REFERENCES Store1(Store),
    Department VARCHAR2(10) NOT NULL
        REFERENCES Store1(Department)
);

只是想知道为什么我一遍又一遍地收到同样的错误。我引用了正确的表,而我引用的列是主键,所以我不确定为什么会出现错误。任何帮助将不胜感激谢谢。

完全错误:

ORA-02270: 此列列表没有匹配的唯一键或主键
02270. 00000 - “此列列表没有匹配的唯一键或主键”

*原因:CREATE/ALTER TABLE 语句中的 REFERENCES 子句给出了一个列列表,在被引用的表中没有匹配的唯一键或主键约束。

*操作:使用 ALL_CONS_COLUMNS 目录视图查找正确的列名

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    我引用了正确的表,而我引用的列是主键

    不是真的。

    从表inventory,您引用Store1 (Store),但store1 表的主键定义为PRIMARY KEY ( Store, Department )

    你不能引用主键的部分

    如果您按如下方式修改外键约束,它将起作用:

    SQL> CREATE TABLE Store(
      2      Store_Name VARCHAR2(20) PRIMARY KEY NOT NULL,
      3      Year_Opened DATE,
      4      Manager VARCHAR2(20) NOT NULL
      5  );
    
    Table created.
    
    SQL> CREATE TABLE Store1(
      2      Store VARCHAR2(20) NOT NULL
      3          REFERENCES Store(Store_Name),
      4      Department VARCHAR2(10) NOT NULL,
      5      PRIMARY KEY ( Store, Department )
      6      );
    
    Table created.
    
    SQL>  CREATE TABLE Inventory(
      2      Inventory_No VARCHAR2(8) PRIMARY KEY NOT NULL,
      3      Store VARCHAR2(20) NOT NULL,
      4      Department VARCHAR2(10) NOT NULL,
      5      --
      6      constraint fk_inv_sto foreign key (store, department)
      7        references store1 (store, department)
      8  );
    
    Table created.
    
    SQL>
    

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多