首页 > 解决方案 > Oracle PLSQL 级联删除不起作用?

问题描述

我有一些应该删除的外键表。我在需要它的任何地方都放置了“删除级联”,但是当我尝试删除表时,我收到以下错误:

*Cause:    An attempt was made to drop a table with unique or
           primary keys referenced by foreign keys in another table.

这是我要删除的表:

DROP TABLE Author;
CREATE TABLE Author (
    id NUMBER(4) NOT NULL,
    first_name VARCHAR2(30) NOT NULL,
    last_name VARCHAR2(30) NOT NULL,
    date_of_birth DATE NOT NULL,
    date_of_death DATE NULL,
    CONSTRAINT Author_PK PRIMARY KEY (id)
);

这是与 Author 表相关的表:

CREATE TABLE Book (
    id NUMBER(4) NOT NULL,
    author NUMBER(4) NULL,
    title VARCHAR2(30) NOT NULL,
    ISBN VARCHAR2(13) NOT NULL,
    book_language VARCHAR2(2) NOT NULL,
    book_genre VARCHAR2(20) NOT NULL,
    CONSTRAINT Book_PK PRIMARY KEY (id),
    CONSTRAINT Book_Author FOREIGN KEY (author) REFERENCES Author(id) ON DELETE cascade
);

标签: sqloraclesql-deleteddlcascade

解决方案


我现在在@a_horse_with_no_name 的帮助下解决了如果您有同样的问题,只需写

drop table table_name cascade constraints;


推荐阅读