mysql删除所有关联表数据

如果要删除比如书本book相关的表的所有数据,一共有40张表,怎么操作好一点,使用存储过程写不知道好不好

40张表,怎么个删除法呢,存错过程当然是可以实现的

“Devil组”引证GPT后的撰写:

  • 使用存储过程可以是一种有效的方式来删除多张表中的数据,因为它可以简化删除操作,并可以将多个删除操作组合成一个单一的操作。下面是一种可能的实现方式:
  • 创建一个存储过程,例如delete_book_data,该存储过程接收一个参数book_id,表示要删除的书本的ID。
  • 在存储过程中,使用DELETE语句来删除与书本相关的数据。根据你的描述,这涉及到40张表,因此你需要在存储过程中添加40个DELETE语句,每个语句删除一张表中与书本相关的数据。

例如:

DELETE FROM table1 WHERE book_id = @book_id;
DELETE FROM table2 WHERE book_id = @book_id;
...
DELETE FROM table40 WHERE book_id = @book_id;


其中,@book_id是存储过程的参数,表示要删除的书本的ID。

将存储过程编译并执行,传递要删除的书本的ID作为参数。例如,如果要删除ID为123的书本相关的数据,可以执行以下SQL语句:

EXEC delete_book_data 123;