我使用 wampserver 2.2。当我想删除 phpMyAdmin 中表的所有记录(全选)时,它只删除一条记录而不是所有记录。为什么它不删除所有记录?
9 回答
您有 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/
Go to your db -> structure and do empty in required table. See here:
使用此查询:
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 个带有外键的表的数据库,只填充了几行,TRUNCATE 所有表大约需要 12 秒,而不是只有几百毫秒删除行。设置自动增量总共增加了大约一秒钟,但仍然要好得多。
所以我建议两者都试一下,看看哪个更适合你的情况。
编写查询: truncate 'Your_table_name';
- 访问 phpmyadmin
- 选择您的数据库并单击结构
- 在您的表格前面,您可以看到Empty,单击它以清除所选表格中的所有条目。
或者您可以使用 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