我用的是 Wampserver 2.2。当我想删除 phpMyAdmin 中一个表的所有记录时(选择 all) ,它只删除一条记录,而不是全部记录。为什么不删除所有记录?
使用以下查询:
DELETE FROM tableName;
注意: 要删除某些特定的记录,还可以在查询中给出 where 子句中的条件。
或者你也可以使用这个查询:
truncate tableName;
还要记住,您不应该与其他表有任何关系。如果表中存在任何外键约束,那么这些记录将不会被删除,而是会显示错误。
你有两个选项 delete和 truncate:
delete
truncate
delete from mytable
这样会删除表中的所有内容,不会重置自动增量 id,这个过程很慢。如果要删除特定的记录,请在结尾处附加一个 where 子句。
truncate myTable
这将重置表,即所有的自动增量字段将被重置。这是一个 DDL 和它的非常快。无法通过 truncate删除任何特定记录。
转到 Sql 选项卡,运行以下查询之一:
delete from tableName;
删除 : 将从表中删除所有行。
或者
Truncate : 也会删除表中的行,但它将从新行开始,从1开始。
详细的博客例子: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
转到 db-> 结构,在必需的表中执行空操作。 看这里:
一个有趣的事实。
我确信 TRUNCATE 总是能够执行得更好,但是在我的例子中,对于一个包含大约30个带有外键的表(只填充了几行)的 db 来说,TRUNCATE 所有表大约需要12秒,而删除这些行只需要几百毫秒。设置自动增量总共增加了大约一秒钟,但它仍然好得多。
所以我建议两个都试试看哪个对你的案子更有效。
您可以使用此命令删除所有行。但是请记住,一旦运行 truncate 命令,就不能回滚它。
对于定义了键约束的表,“ Truncate tableName”将失败 。它也不会重新索引表 AUTO_INCREMENT值。相反,使用 sql 语法删除所有表条目并将索引重置为1:
AUTO_INCREMENT
DELETE FROM tableName; ALTER TABLE tableName AUTO_INCREMENT = 1
写下疑问句: 截断‘ Your _ table _ name’;
或者可以使用 sql query 进行同样的操作:
点击沿着 结构的 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
详细文档请参阅 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳和 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳