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

Php MYSQL:从具有外键的表中删除,php,mysql,database,foreign-keys,laravel-5,Php,Mysql,Database,Foreign Keys,Laravel 5,我有五张桌子,都是空的 使用者 影响者 -id 类别 -catogory_id -influencer_id 平台 -influencer_id -platform_id 任务 我想删除一个影响者,同时删除所有记录。如何做到这一点?在创建表时使用“删除级联”。比如: CREATE TABLE child ( id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id)

我有五张桌子,都是空的

使用者

影响者

-id
类别

-catogory_id
-influencer_id
平台

-influencer_id
-platform_id
任务


我想删除一个影响者,同时删除所有记录。如何做到这一点?

在创建表时使用“删除级联”。比如:

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;

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

DELETE FROM Users u
USING Influencers i
WHERE u.id = i.id;
您可以对其他表执行相同的操作,然后最后删除影响者表


如果在数据库上设置了实际的外键,则可以指定在删除时让它删除外部记录。可能的重复:
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;
DELETE FROM Users u
USING Influencers i
WHERE u.id = i.id;
DROP TABLE Influencers;