gpt4 book ai didi

MySql 从多个表中删除客户及其订单

转载 作者:行者123 更新时间:2023-11-29 19:07:48 24 4
gpt4 key购买 nike

我正在尝试使用例程(cID)通过 phpMyAdmin 按 CustomerID 从 3 个不同的表中删除客户及其订单。我的表结构如下图所示: Tables structure主键是 CustomerID、OrderID、ProductID。

表:订单

  • 订单ID
  • 订单日期
  • 客户 ID

表:客户

  • 客户 ID
  • 客户名称
  • 客户地址

表:产品

  • 产品ID
  • 产品描述
  • 产品价格

表:已分配

  • ProductID(外键)
  • 订单ID(外键)
  • 数量

查询如下:

BEGIN 
INSERT INTO customersdeleted SELECT * FROM customers
WHERE CustomerID = cID; DELETE assigned
FROM assigned INNER JOIN orders
ON assigned.OrderID = orders.OrderID
WHERE orders.CustomerID = cID;
DELETE FROM customers WHERE customerID = cID;
SELECT * FROM orders;
SELECT * FROM customers; SELECT * FROM customersdeleted;
END

多年来,我一直在尝试让此查询正常工作,并通过 CustomerID 删除客户及其订单,并将它们(删除后)插入到我也创建的customersdeleted 表中。任何帮助将不胜感激!

最佳答案

创建表时遇到一些问题;我给你一个简单的代码解决方案:

create table order(
orderId varchar(10),
order_date date,
customerId char(7),
primary key(customerId)
);
create table customers(
customerId char(7),
customerName varchar(30),
primary key(customerId),
foreign key(customerId) references order(customerId),
on delete cascade

);

N:B:如果您从订单表中删除客户 ID,则删除级联将从所有表中删除该客户 ID。因此,请更改您的查询,以便您只需删除订单表的客户 ID,其他表将自动删除因为它们是外键。

关于MySql 从多个表中删除客户及其订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43349739/

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