【问题标题】:No matching unique or primary key for this column list even after putting the primary key即使在放置主键后,此列列表也没有匹配的唯一键或主键
【发布时间】:2019-06-04 11:47:28
【问题描述】:

所以我刚刚开始学习 SQL,无法获取外键来引用主键。

这是不工作的表

CREATE TABLE Classification (
    mvID integer,
    genre varchar (20),
    FOREIGN KEY(mvID) REFERENCES Movie(mvID)
);

这是它所引用的表

CREATE TABLE Movie (
    mvID integer,
    title varchar(40),  
    rating char (2),
    rel_date date,
    length integer,
    studio varchar(40),
    PRIMARY KEY (mvID)
);

每当我运行它时,它总是向我显示这条消息

错误报告-

ORA-02270: 此列列表没有匹配的唯一键或主键 02270. 00000 - “此列列表没有匹配的唯一键或主键” *原因:CREATE/ALTER TABLE 语句中的 REFERENCES 子句 给出没有匹配的唯一或主要的列列表 引用表中的键约束。

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

【问题讨论】:

  • 您的代码有效:dbfiddle.uk/….
  • 你检查过user_constraints表中存在PK吗?
  • 是这种情况,您创建了没有PK的电影表,或者可能稍后添加并且没有以某种方式创建约束。您提供的脚本运行良好。
  • 它工作正常。请参考:dbfiddle.uk/…

标签: sql oracle


【解决方案1】:

您的 DDL 脚本在 Oracle 12c 中完美运行: 检查您是否有拼写错误,或者您是否以错误的顺序创建了表格。

SQL> CREATE TABLE Movie (
    mvID integer,
    title varchar(40),  
    rating char (2),
    rel_date date,
    length integer,
    studio varchar(40),
    PRIMARY KEY (mvID)
);
  2    3    4    5    6    7    8    9  
Table created.

SQL> CREATE TABLE Classification (
    mvID integer,
    genre varchar (20),
    FOREIGN KEY(mvID) REFERENCES Movie(mvID)
);
  2    3    4    5  
Table created.

SQL> drop table Classification;

Table dropped.

SQL> drop table Movie;

Table dropped.

SQL> 

【讨论】:

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