我使用wampserver 2.2。当我想删除 phpMyAdmin 中表的所有记录(全选)时,它只删除一条记录,而不是所有记录。为什么它不删除所有记录?
您有 2 个选择
delete
和 truncate
:
delete from mytable
这会删除表的所有内容,而不是重置自增id,这个过程非常慢。如果要删除特定记录,请在末尾附加一个 where 子句。
truncate myTable
这将重置表,即所有自动增量字段将被重置。它是一个 DDL,而且速度非常快。您无法通过
truncate
删除任何特定记录。转到 Sql 选项卡,运行以下查询之一:
delete from tableName;
删除:将从表中删除所有行。下一次插入将采用下一个自动增量 id。
或
truncate tableName;
截断:也会从表中删除行,但将从新行 1 开始。
带有示例的详细博客:http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
转到您的数据库 -> 结构并在所需的表中清空。 请看这里:
使用此查询:
DELETE FROM tableName;
注意:要删除某些特定记录,您也可以在查询中的where子句中给出条件。
或者您也可以使用此查询:
truncate tableName;
还要记住,您不应该与其他表有任何关系。如果表中存在任何外键约束,那么这些记录将不会被删除,并且会给出错误。
您可以使用此命令删除所有行。但请记住一件事,一旦运行 truncate 命令,您就无法回滚它。
truncate tableName;
“Truncate tableName”将失败。它也不会重新索引表
AUTO_INCREMENT
值。相反,使用以下 SQL 语法删除所有表条目并将索引重置回 1:
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
一个有趣的事实。
我确信 TRUNCATE 总是会表现得更好,但在我的例子中,对于一个大约有 30 个带有外键的表的数据库,只填充了几行,它需要大约 12 秒来 TRUNCATE 所有表,而不是只有几百秒删除行的毫秒数。设置自动增量总共增加了大约一秒,但仍然好很多。
所以我建议两者都尝试一下,看看哪种更适合您的情况。
编写查询: 截断“你的表名”;