数据库删除查询

时间:2015-03-17 21:04:49

标签: php mysql database database-design

我正在设计一个带有php和mysql的学生管理系统 哪里有组织有学生和老师 例子
有组织= stackoverflow.com它有两种类型的用户员工和客户端
连接到我们的组织的所有详细信息都存储在表X中,并且表Y中有员工详细信息,表Z中有客户详细信息 有许多不同的组织,他们都有不同的客户和员工 现在,如果我从表x中删除一个组织,我希望其所有细节都从数据库中删除(包括分别从表y和z中删除所有员工和客户)
有没有办法只用数据库(mysql)或我必须编写一个应用程序来做到这一点

1 个答案:

答案 0 :(得分:1)

您可以通过在表定义上声明ON DELETE CASCADE来轻松完成此任务:

CREATE TABLE organizations (
    org_id PRIMARY KEY;
    name
);

CREATE TABLE clients (
    id PRIMARY KEY;
    FOREIGN KEY (org_id) 
    REFERENCES organizations (org_id) 
    ON DELETE CASCADE
);

CREATE TABLE employees (
    employee_id integer PRIMARY KEY,
    FOREIGN KEY (org_id) 
    REFERENCES organizations (org_id) 
    ON DELETE CASCADE
);

更多信息:
Tutorial
MySQL Reference manual