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