是否可以使用some id = '123'
删除 MYSQL 数据库中所有表格中的所有行。
其实我需要这个,因为在其他表中有很多垃圾数据,但在主表行中已删除,我有ID。
现在新逻辑以正确的方式实现,但我必须删除以前的行。是否可以在单个MYSQL
查询中使用?
没有 DBA 级别级联关系。
提前致谢
答案 0 :(得分:1)
我根据我的数据库为您提供输出,该数据库有多个具有列ID的表。所以用你的数据库名称替换我的db'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
命令进行备份。