【问题标题】:在phpMyAdmin中删除一个MYSQL表中的所有记录
【发布时间】:2013-08-18 18:42:38
【问题描述】:

我使用 wampserver 2.2。当我想删除 phpMyAdmin 中表的所有记录(全选)时,它只删除一条记录而不是所有记录。为什么不删除所有记录?

【问题讨论】:

  • 取决于你的查询,你是这样执行的吗? DELETE FROM tableName
  • 高亮表名并按SHIFT-DEL

标签: phpmyadmin


【解决方案1】:
  • 访问 phpmyadmin
  • 选择您的数据库并点击结构
  • 在您的表格前面,您可以看到Empty,点击它可以清除所选表格中的所有条目。

或者你也可以使用 sql 查询来做同样的事情:

单击 Structure

旁边的 SQL
TRUNCATE tablename; //offers better performance, but used only when all entries need to be cleared
or
DELETE FROM tablename; //returns the number of rows deleted

请参阅 DELETETRUNCATE 了解详细文档

【讨论】:

  • 简单快速。我喜欢碎纸机图标
  • 简单易行。
【解决方案2】:

您可以使用此命令删除所有行。但请记住,一旦运行 truncate 命令就无法回滚它。

  truncate tableName;

【讨论】:

    【解决方案3】:

    您有 2 个选项 deletetruncate

    1. delete from mytable

      这会删除表的所有内容,不会重置自增id,这个过程很慢。如果要删除特定记录,请在末尾添加 where 子句。

    2. truncate myTable

      这将重置表,即所有自动增量字段都将被重置。它是一个 DDL,而且速度非常快。您不能通过truncate删除任何特定记录。

    【讨论】:

    • 请注意,truncate 也会删除 index,学习这个很难...
    • 我可以使用 Python 做到这一点吗?我在 PhpMyAdmin 中尝试过,它完美无缺。但是当我在 Python 中编写相同的命令时,它给了我一个错误提示 command denied to user@localhost。我研究了一下,它需要权限。但是当我在 PhpMyAdmin 中做同样的事情时,它不需要任何权限。我该怎么做?为什么会有这种差异
    【解决方案4】:

    转到 Sql 选项卡运行以下查询之一:

    delete from tableName;
    

    Delete: 将从您的表中删除所有行。下一次插入将采用下一个自动递增 id。

    truncate tableName;
    

    Truncate: 也会从你的表中删除行,但它会从新的 1 行开始。

    详细的博客示例:http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/

    【讨论】:

    • 我可以使用 Python 做到这一点吗?我在 PhpMyAdmin 中尝试过,它完美无缺。但是当我在 Python 中编写相同的命令时,它给了我一个错误提示 command denied to user@localhost。我研究了一下,它需要权限。但是当我在 PhpMyAdmin 中做的时候,它不需要任何权限
    【解决方案5】:

    'Truncate tableName' 将在定义了键约束的表上失败。它也不会重新索引表 AUTO_INCREMENT 值。相反,使用以下 sql 语法删除所有表条目并将索引重置回 1:

    DELETE FROM tableName;
    ALTER TABLE tableName AUTO_INCREMENT = 1
    

    【讨论】:

      【解决方案6】:

      编写查询: 截断'Your_table_name';

      【讨论】:

        【解决方案7】:

        一个有趣的事实。

        我确信 TRUNCATE 总是会表现得更好,但在我的情况下,对于一个包含大约 30 个带有外键的表且仅填充几行的数据库,TRUNCATE 所有表大约需要 12 秒,而不是仅几百毫秒来删除行。设置自动增量总共增加了大约一秒,但仍然好很多。

        所以我建议两者都试一下,看看哪个更适合你的情况。

        【讨论】:

          【解决方案8】:

          转到您的 db -> 结构并在所需表中做空。 见这里:

          【讨论】:

            【解决方案9】:

            使用这个查询:

            DELETE FROM tableName;
            

            注意:要删除某些特定记录,您也可以在查询的 where 子句中给出条件。

            或者您也可以使用此查询:

            truncate tableName;
            

            还请记住,您不应该与其他表有任何关系。如果表中有任何外键约束,那么这些记录将不会被删除并会给出错误。

            【讨论】:

              猜你喜欢
              • 2010-09-21
              • 1970-01-01
              • 1970-01-01
              • 2013-08-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多