如何删除具有外键的记录 - MySQL Java

时间:2014-03-27 17:43:42

标签: mysql sql

我有一张看起来像这样的表

Car ID     Car Name     Part ID      Stock ID 
___________________________________________________
1          Audi          1             1

2          Benz          2             2

3          Corsa 1.3     3             3

4          Corsa 2.0     3             4

现在,如果我要删除Corsa 1.3,则会显示Foreign key constraint部件ID。由于部件ID,它无法删除它。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

您无法删除引用外键的指针;这就是他们的全部观点。

您需要做的是删除密钥引用的记录或删除约束。

答案 1 :(得分:0)

您应该将其抱怨的字段设置为null,之后删除将成功。在您尝试删除corsa 1.3之前,请将其部件ID设置为null,从而删除引用。

答案 2 :(得分:0)

答案 3 :(得分:0)

在创建表时指定了约束,该表指示在更新和删除时如何处理主键和外键,您可以指定更新时级联和/或删除或不存在哪个是您的问题

create table Orgs       (
    id bigint unsigned auto_increment,
    name varchar(100) not null,
    primary key (id),
    unique index name_ind (name)
) engine=InnoDB;

create table Households (
    id bigint unsigned,
    Orgid bigint unsigned,
    household varchar(20) not null,
    primary key (id),
    index org_ind (Orgid),
    foreign key (Orgid) references Orgs(id) on update cascade on delete cascade
)  engine=InnoDB;