【发布时间】:2020-02-05 17:43:34
【问题描述】:
我使用下面的查询创建了 3 个表。但是当我尝试删除 LOANACCOUNT 表时,我收到一个错误:
错误:
错误代码:1217。无法删除或更新父行:外键约束失败
创建表查询:
CREATE TABLE LOANACCOUNT
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
LOANACCOUNTTYPE VARCHAR(9) NOT NULL,
CREATIONDATE DATE NOT NULL,
CONSTRAINT LOAN_ACCOUNT_PK PRIMARY KEY (ID),
);
CREATE TABLE TRANSACTIONS
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
ACCOUNTID INT UNSIGNED NOT NULL,
TRANSACTIONTYPE VARCHAR(12) NOT NULL,
CONSTRAINT TRANSACTION_PK PRIMARY KEY (ID),
FOREIGN KEY LOANACCOUNT_FK (ACCOUNTID) REFERENCES LOANACCOUNT (ID) ON DELETE CASCADE
);
CREATE TABLE INSTALLMENT
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
ACCOUNTID INT UNSIGNED NOT NULL,
DUEDATE DATE NOT NULL,
CONSTRAINT INSTALLMENT_PK PRIMARY KEY (ID),
FOREIGN KEY LOANACCOUNT_FK (ACCOUNTID) REFERENCES LOANACCOUNT (ID) ON DELETE CASCADE
);
删除表查询:
DROP TABLE IF EXISTS LOANACCOUNT;
我知道我的外键有问题,但我不知道如何修复它。
【问题讨论】:
-
是的,因为 LOANACCOUNT 由其他两个表链接到。您必须先删除其他两个表,然后才能删除 LOANACCOUNT
-
@RiggsFolly 但是有没有办法删除链接到我要删除的表的所有外键?我的意思是一个命令,不要单独删除它们
标签: mysql