我想删除包含订阅列

时间:2016-12-08 08:53:00

标签: mysql sql

我想删除包含subscriptionsubscription_id列的数据库表格中的所有数据。

订阅 subscription_id 列是PK或FK。

我有7个包含subscription_id列的表和包含subscription列的78个表。

是否可以在sql查询中执行此操作?

1 个答案:

答案 0 :(得分:2)

这将为您提供TRUNCATEsubscription_id列表格的subscription语句:

SELECT DISTINCT concat( "TRUNCATE TABLE ", TABLE_NAME, ";" )
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('subscription_id','subscription')
        AND TABLE_SCHEMA='YourDatabase';

编辑1:

正如评论中所提到的,需要禁用约束,以便能够使用上面给出的查询以随机顺序截断表。

禁用约束的示例:

SET foreign_key_checks = 0;

--Truncate statements execution

SET foreign_key_checks = 1;