admin管理员组文章数量:1532655
2024年6月6日发(作者:)
删除表(记录和结构)的语名delete ———— truncate ———— drop
DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的
数据块标成unused.
如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用
的数据块表空间
TRUNCATE TABLE 表名;
此操作不可回退.
相同点
truncate和不带where子句的delete, 以及drop都会删除表内的数据
注意:
1.这里说的delete是指不带where子句的delete语句
2.在存储过程中默认是不允许执行truncate table tablename操作的,所以要使用
execute immediate 'truncate table tablename';
例如:
[sql] view plaincopyprint?
1. CREATE OR REPLACE PROCEDURE proc_delete_all_data
2. IS
3. BEGIN
4. execute immediate 'truncate table T_FLOW_ACCOUNT';
5. execute immediate 'truncate table T_FLOW_MERCHANT';
6. END proc_delete_all_data;
不同点:
1. truncate和 delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依
赖于该表的存储过程/函数将保留,但是变为invalid状态.
语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如
版权声明:本文标题:Oracle 删除数据的几种方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1717675920a597604.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论