删除phpMyAdmin中MYSQL表中的所有记录

问题描述 投票:0回答:10

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

phpmyadmin
10个回答
241
投票

您有 2 个选择

delete
truncate
:

  1. delete from mytable

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

  2. truncate myTable

    这将重置表,即所有自动增量字段将被重置。它是一个 DDL,而且速度非常快。您无法通过

    truncate
    删除任何特定记录。


169
投票

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

delete from tableName;

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

truncate tableName;

截断:也会从表中删除行,但将从新行 1 开始。

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


146
投票

转到您的数据库 -> 结构并在所需的表中清空。 请看这里:

this screenshot


42
投票

使用此查询:

DELETE FROM tableName;

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

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

truncate tableName;

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


28
投票

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

  truncate tableName;

19
投票
在定义了键约束的表上,

“Truncate tableName”将失败。它也不会重新索引表

AUTO_INCREMENT
值。相反,使用以下 SQL 语法删除所有表条目并将索引重置回 1:

DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1

4
投票

一个有趣的事实。

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

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


4
投票
  • 访问 phpmyadmin
  • 选择您的数据库并单击结构
  • 在您的表格前面,您可以看到清空,单击它可以清除所选表格中的所有条目。

或者您可以使用 sql 查询执行相同的操作:

单击旁边的 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
投票

编写查询: 截断“你的表名”;


0
投票

这里还有一个没有提到的视觉方法。

  1. 选择侧面菜单中的
    tableName
  2. 在表格菜单中,选择
    Operations
  3. 在操作页面底部,您会看到
    Delete Data or table
    选项

© www.soinside.com 2019 - 2024. All rights reserved.