时间:2024-09-02 03:01:32
在数据库中drop与delete的区别
在数据库中,drop和delete的主要区别在于它们操作的对象、操作的生效方式和对空间的影响:
1. 操作的对象:drop主要用于删除结构,如数据库、表、字段等,而delete主要用于删除数据。例如,删除数据库或表可以使用drop,而删除表中的某一行数据则可以使用delete。
2. 操作的生效方式:drop是数据库定义语言(DDL),操作立即生效,原数据不放到rollbacksegment中,不能回滚,操作不触发trigger。而delete是数据库操作语言(DML),这个操作会放到rollbacksegement中,在事务提交后生效,执行时触发相应的trigger。
3. 对空间的影响:drop语句将表所占用的空间全部释放,而delete语句不影响表所占用的extent,高水线保持原位置不动。
需要注意的是,在使用drop时一定要注意,虽然可以恢复,但为了减少麻烦,还是要慎重。如果想删除部分数据用delete,注意带上where子句,回滚段要足够大;如果和事务有关,或者想触发trigger,还是用delete。