【问题标题】:Query for deleting ALL data from a database on MySQL using VB.Net使用 VB.Net 从 MySQL 数据库中删除所有数据的查询
【发布时间】:2014-07-20 01:47:58
【问题描述】:

从数据库中删除所有数据的查询是什么?这样做的原因是有大量数据将被处理并存储在该数据库中,并且每个月都应该清理它以避免大量数据,因为之前的数据在下一个周期中将无关紧要。

PS,有没有这样的查询:

Dim sqlQuery As String = "DELETE ALL * FROM employee_table"

我见过this question,但我认为这不是我想做的事情的答案。

【问题讨论】:

  • 我已将您之前的问题作为副本关闭。你需要做什么似乎很清楚。使用 TRUNCATE TABLE tablename 将 MySqlCommand 发送到您的数据库。有什么不清楚的地方?
  • 不,史蒂夫,我不清楚,因为我在编程方面不如你聪明。我从中得到的是我认为在 TRUNCATE TABLE 表名部分之后还有其他条件。至少 T.J Crowder 回答得很好,他的回答很有帮助而不是粗鲁。

标签: mysql vb.net


【解决方案1】:

PS,有没有这样的查询:

Dim sqlQuery As String = "DELETE ALL * FROM employee_table"

是的:

Dim sqlQuery As String = "DELETE FROM employee_table"

这会像任何其他数据修改一样记录删除(在复制日志等中)。您可能还会看到:

Dim sqlQuery As String = "TRUNCATE TABLE employee_table"

记录删除(在复制日志等中)。

请参阅the MySQL documentation 了解不合格的DELETE(没有WHEREDELETE)和TRUNCATE 之间的区别,但基本上:如果您使用复制、binlog 等并且需要有一个准确反映发生的动作,使用DELETE;如果您不需要,可以使用TRUNCATE,它的运行速度更快(因为它不必进行日志记录等)。

从数据库中删除所有数据的查询...

当然,以上只是一张桌子。要做多个表,只需使用多个DELETETRUNCATE 语句。

【讨论】:

  • 另外,如果你使用safe update mode,那么如果没有where,MySQL 将不允许delete
  • @Rahul:是的,但那是在命令行,而不是通过连接器。
  • 我不确定连接器,但很高兴知道。只是想在评论中添加一个额外的信息。
  • 那么,为什么要使用TRUNCATE TABLE?我知道他们的答案,但它会增加你的答案。
【解决方案2】:

你可以枚举所有的db表,然后删除它的内容。

要枚举表,您可以执行“SHOW TABLES;”,然后遍历结果并截断这些表“TRUNCATE TABLE (tablename);”

注意关系,如果一行被外键引用,你将不能删除它,所以你必须分层删除信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多