Adn*_*que 5 mysql sql database truncate sql-delete
我们什么时候使用DELETE
命令与TRUNCATE
命令?我试图在互联网上找到但两个命令都删除了数据; 我无法区分.
Sah*_*hah 12
从表中删除
1. DELETE is a DML Command.
2. DELETE statement is executed using a row lock, each row in the table is locked for deletion.
3. We can specify filters in where clause
4. It deletes specified data if where condition exists.
5. Delete activates a trigger because the operation are logged individually.
6. Slower than truncate because, it keeps logs.
7. Rollback is possible.
8. LIMIT clause can also be used to set a limit on the number of rows to be deleted.
9. ORDER BY clause can be used in DELETE statement. In this case, the rows are deleted in the specified order.
Run Code Online (Sandbox Code Playgroud)
TRUNCATE TABLE
1. TRUNCATE is a DDL command.
2. TRUNCATE TABLE always locks the table and page but not each row.
3. Cannot use Where Condition.
4. It Removes all the data reset the auto increment number.
5. TRUNCATE TABLE cannot activate a trigger because the operation does not log individual row deletions.
6. Faster in performance wise, because it doesn't keep any logs.
7. Rollback is possible.
8. Cannot use LIMIT and ORDER BY.
Run Code Online (Sandbox Code Playgroud)
与TRANSACTION一起使用时,DELETE和TRUNCATE都可以回滚.如果存在具有自动递增的主键,则truncate将重置计数器.
归档时间: |
|
查看次数: |
3783 次 |
最近记录: |