使用一些ID子句从MySQL db中删除所有表



是否可以使用some id = '123'中的所有表删除所有表。

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

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

没有 dba 级别级联关系。

预先感谢

我根据我的数据库为您提供输出,该数据库具有具有列ID的多个表。因此

SQL Query(用您的数据库名称替换Djangogirls)

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

上面的输出将是SQL删除语句的列表,您可以复制粘贴并简单地运行它。

输出

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命令进行备份。

最新更新