Mysql:使用哪个:drop table,truncate table,delete from table

gam*_*ver 14 mysql sql

列出以下MySql命令之间的差异.

  • drop table tablename ;
  • 截断表tablename ;
  • tablename中删除1;

另外根据您的经验,请告诉我每个人的典型使用场景.

nic*_*ckf 27

  • drop table tablename;
    • 在此之后,它消失了.没有更多的表格.没有更多的数据.
    • 当您不再需要该表时使用此选项.
  • truncate table tablename;
    • 在此之后,表格为空,并且(重要的是)自动递增键被重置为1.这就像拥有一张全新的表格一样.
    • 当你想要一个空表时使用它.它比DELETE因为删除所有数据更快.DELETE将扫描表以生成受影响的行数.
  • delete from tablename;
    • 这使您可以根据可选WHERE子句筛选要删除的行.
    • 如果要删除特定记录,请使用此选项,例如: DELETE FROM tablename WHERE username = 'joe'


Dan*_*ite 5

  • Drop正在删除表。如果我不再需要桌子,我会扔掉它
  • “截断操作会删除并重新创建表,这比逐行删除要快得多,特别是对于大型表。” - 来自MySQL 手册
  • 我会用delete查询来删除(特定行)。

我很少从数据库中“删除”任何内容。我通常会放置一个标志列,例如deleted布尔值。我检查一下。如果是true,我不会提供该数据。


小智 5

删除

  • 仅删除行
  • Mysql 保留其定义
  • 你有机会回滚

截短:

  • 与删除相同,但可以再次回滚数据

降低

  • 从mysql数据库中删除表数据和数据结构
  • 无法再次回滚

如果您只想删除行,那么您可以使用DELETE
如果您想从数据库中删除表,那么您可以使用DROP

在删除数据之前,先想清楚数据是否有用。因为您无法再次获取该数据。