gpt4 book ai didi

mysql - 如何使用一个sql命令同时从一个或多个表中删除

转载 作者:行者123 更新时间:2023-11-29 18:26:46 25 4
gpt4 key购买 nike

我有三个表(非政府组织、工作人员和财务)。如果删除某个非政府组织的数据,我想删除该非政府组织的所有员工和财务数据。现在,我分别在这些表中添加数据:首先,添加所有非政府组织;其次,添加该非政府组织的所有工作人员;第三,添加非政府组织的所有资金。

现在,假设我只添加非政府组织和工作人员,后来改变主意从两个表中删除信息,而不进一步添加财务。

$qry =mysqli_query($mysqli, "
update ngo, finance, staff
set ngo.deletestatus=('delete'),
finance.deletestatus=('delete'),
staff.deletestatus=('delete')
where ngo.ngo_id=finance.ngo_id
and ngo.ngo_id=staff.ngo_id
and ngo.ngo_id='".$_GET['delet']."'");

此查询未运行,因为财务表为空。即使一张表是空的,我仍然希望使用相同的脚本使删除操作生效。请帮忙!!

最佳答案

您将需要修复数据库设计以允许级联删除/更新。您可以这样做:

CREATE TABLE ngos (
id int unsigned not null primary key,
name VARCHAR(255) default null
);

CREATE TABLE ngostaff (
ngo_id int unsigned not null,
staff_id int unsigned not null,
name VARCHAR(255) default null,
FOREIGN KEY (ngo_id) REFERENCES ngos (id)
ON DELETE CASCADE
ON UPDATE CASCADE
);

CREATE TABLE ngofinance (
ngo_id int unsigned not null,
finance_id int unsigned not null,
name VARCHAR(255) default null,
FOREIGN KEY (ngo_id) REFERENCES ngos (id)
ON DELETE CASCADE
ON UPDATE CASCADE
);

从 ngo 表中删除一行将自动删除引用它的任何行。

关于mysql - 如何使用一个sql命令同时从一个或多个表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46117803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com