MYSQL:从具有外键的表中删除

时间:2015-06-05 16:25:42

标签: php mysql database foreign-keys laravel-5

我有5张表

用户

-id
-influencer_id

影响者

-id

分类

-catogory_id
-influencer_id

平台

-influencer_id
-platform_id

任务

-influencer_id
-task_id

我想删除一个影响者并同时删除所有记录。怎么做?

2 个答案:

答案 0 :(得分:0)

在创建表时使用ON DELETE CASCADE。像:

CREATE TABLE child (
    id INT, 
    parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id) 
        REFERENCES parent(id)
        ON DELETE CASCADE
) ENGINE=INNODB;

http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

答案 1 :(得分:0)

首先从其他表中删除记录。您可以使用以下查询:

DELETE FROM Users u
USING Influencers i
WHERE u.id = i.id;

您可以对其他表执行相同操作,然后在DROP Influencers表中执行相同的操作。

DROP TABLE Influencers;