【问题标题】:MySQL Query to truncate All Tables ignoring all constraints?MySQL查询截断所有表忽略所有约束?
【发布时间】:2013-08-01 12:59:51
【问题描述】:

我想截断 mysql 数据库中表的所有行。

SET FOREIGN_KEY_CHECKS = 0; -- Disable foreign key checking.
-- Need MySQL Query to iterater/loop and truncate all the tables or delete all the rows of the -- table
SET FOREIGN_KEY_CHECKS = 1; -- Enable foreign key checking.

有人可以帮我查询吗?

谢谢。

【问题讨论】:

标签: mysql


【解决方案1】:

因为你在其他表中使用了这个表的主键作为外键。 *从子表中删除值,然后尝试截断父表 *

例如:国家/地区表 -> 国家/地区 ID(主键),名称
人员表->人员ID(主键),人员姓名,国家/地区ID(外键)

从 people 表中删除值,然后尝试截断 country 表:)

【讨论】:

  • 我需要一个通用查询来禁用所有约束并截断所有行。即我希望维护结构,但通过忽略任何约束来删除数据库中所有表的所有行比如外键、主键、唯一键等,
  • 您的问题与post类似。
  • 查询应该是通用的,可以在任何 mysql 数据库中使用以截断所有表。具体的名称将使查询依赖于数据库。
  • 这并没有回答问题(实际上是“我如何截断所有表”),但提供了一种解决方法。
【解决方案2】:

这个查询可以做到:

SELECT Concat('TRUNCATE TABLE ', TABLE_NAME) 
FROM INFORMATION_SCHEMA.TABLES

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多