是否可以使用MYSQL DB中的some id = '123'从所有表中删除所有行。
实际上,我需要这样做,因为在其他表中有很多垃圾数据,但是在主表行中是已删除的,我有ID。
现在,新逻辑的实现方式是正确的,但我必须删除前面的行。在一个MYSQL查询中是否可能出现这种情况?
不存在、DBA、级级联关系。
提前感谢
发布于 2017-02-22 15:25:45
我根据我的数据库为您提供输出,该数据库有多个具有列Id的表。所以用你的数据库名代替我的数据库'djangogirls‘。
SQL查询(用数据库名替换django少女)
SELECT CONCAT('DELETE FROM ',TABLE_NAME," WHERE Id = '1';") FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'djangogirls'
AND COLUMN_NAME ='Id';上面的输出将是statement语句的列表,您可以复制、粘贴并简单地运行它。
输出
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命令进行备份。
https://stackoverflow.com/questions/42395160
复制相似问题