【发布时间】:2011-01-02 01:09:35
【问题描述】:
列出以下MySql命令之间的区别。
- 删除表表名;
- 截断表表名;
- 从 tablename 中删除,其中 1;
另外根据您的经验,请告诉我每个的典型使用场景。
【问题讨论】:
-
最后一个查询是删除所有行。我用“where 1”子句明确表示。
列出以下MySql命令之间的区别。
另外根据您的经验,请告诉我每个的典型使用场景。
【问题讨论】:
Drop 正在删除表。如果我不再需要它,我会放下桌子delete 对查询进行(特定行的)删除。我很少从我的数据库中“删除”任何内容。我一般将deleted 之类的标志列作为布尔值。我检查一下。如果是true,我不会提供该数据。
【讨论】:
drop table tablename;
truncate table tablename;
DELETE 更快,因为它只是删除所有数据。 DELETE 将扫描表以生成受影响的行数。delete from tablename;
WHERE 子句过滤要删除的行。DELETE FROM tablename WHERE username = 'joe'
【讨论】:
除了上面的答案,在 Oracle RDBMS 上,“删除”是一个事务,如果您没有提交,则可以回滚。 “截断”不能。
【讨论】:
如果您只想删除行,则可以使用 DELETE
如果你想从数据库中删除表,那么你可以使用 DROP
在删除数据之前,请考虑数据是否有用。因为您无法再次获得该数据。
【讨论】:
删除
截断
掉落
【讨论】: