使用一些ID子句从MYSQL DB中删除所有表中的所有行

时间:2017-02-22 15:06:02

标签: mysql delete-row

是否可以使用some id = '123'删除 MYSQL 数据库中所有表格中的所有行。

其实我需要这个,因为在其他表中有很多垃圾数据,但在主表行中已删除,我有ID。

现在新逻辑以正确的方式实现,但我必须删除以前的行。是否可以在单个MYSQL查询中使用?

没有 DBA 级别级联关系。

提前致谢

1 个答案:

答案 0 :(得分:1)

我根据我的数据库为您提供输出,该数据库有多个具有列ID的表。所以用你的数据库名称替换我的db'djangogirls。

SQL查询(用您的数据库名称替换djangogirls)

SELECT CONCAT('DELETE FROM ',TABLE_NAME," WHERE Id = '1';") FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = 'djangogirls'
AND COLUMN_NAME ='Id';

上面的输出将是一个sql delete语句列表,您可以复制粘贴并简单地运行它。

输出

DELETE FROM auth_group WHERE Id = '1';
DELETE FROM auth_group_permissions WHERE Id = '1';
DELETE FROM auth_permission WHERE Id = '1';
DELETE FROM auth_user WHERE Id = '1';
DELETE FROM auth_user_groups WHERE Id = '1';
DELETE FROM auth_user_user_permissions WHERE Id = '1';
DELETE FROM blog_post WHERE Id = '1';
DELETE FROM django_admin_log WHERE Id = '1';
DELETE FROM django_content_type WHERE Id = '1';
DELETE FROM django_migrations WHERE Id = '1';

再次确保您确切知道自己在做什么。最好使用mysqldump -u root -p yourdb > yourdb.sql命令进行备份。