由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - truncate和delete在ORACLE里有什么区别?
相关主题
MySQL table either insert or drop/truncate table running foreverOracle求助,thanks!!!
another question--怎么delete a row from a tableSQL Server Trigger on System Base Table or Catalog View
No Need for trigger Re: oracle trigger questionCan I execute alter inPL/SQL
急问:如何恢复被删除的数据?sql server 面试题 (9)
新手一问,关于delete和truncate table这个sql怎么写?
什么时候不用索引In toad,
oracle trigger questionMS Sql 2012: cannot detach database
Basic oracle questions.我说个有意思的题目大家玩玩吧
相关话题的讨论汇总
话题: truncate话题: delete话题: oracle话题: table话题: 区别
进入Database版参与讨论
1 (共1页)
e******r
发帖数: 220
1
我想把所有数据从一个table里去掉, 先试了truncate,没成功(说是referenced
by foreign key); 用delete就成了.
什么原因啊? 在这个例子里, 用delete 会不会破坏数据库的结构?
谢谢
c*****d
发帖数: 6045
2
不管delete还是truncate,都不会破坏数据库的结构
delete是dml,可以rollback
truncate是ddl,不可以rollback
c*****d
发帖数: 6045
3
truncate table操作oracle要检查是否存在ref关系
如果有B表fk ref到你要truncate的表A,即便B表里实际没有数据,truncate A操作也不
能成功
delete就不同了,如果没有对应的数据,delete A操作可以

【在 e******r 的大作中提到】
: 我想把所有数据从一个table里去掉, 先试了truncate,没成功(说是referenced
: by foreign key); 用delete就成了.
: 什么原因啊? 在这个例子里, 用delete 会不会破坏数据库的结构?
: 谢谢

j***a
发帖数: 10844
4
And truncate will release the storage space. Delete won't.
B*****g
发帖数: 34098
5
disable ref,呵呵。

【在 c*****d 的大作中提到】
: truncate table操作oracle要检查是否存在ref关系
: 如果有B表fk ref到你要truncate的表A,即便B表里实际没有数据,truncate A操作也不
: 能成功
: delete就不同了,如果没有对应的数据,delete A操作可以

c*****d
发帖数: 6045
6
对,如果想truncate table A成功
必须alter table B disable constraint FK_NAME
然后就可以truncate A了

也不

【在 B*****g 的大作中提到】
: disable ref,呵呵。
n********6
发帖数: 1511
7
补充题外问题:
在sql server里面,如果在stored procedure里面用truncate,job agent run需要非
常高的权限。为什么呢?因为truncate是DDL吗?
结果是:很多都用delete,尽管有些数据可能不需要写入log file。
1 (共1页)
进入Database版参与讨论
相关主题
我说个有意思的题目大家玩玩吧新手一问,关于delete和truncate table
Stored Procedure?什么时候不用索引
foreign key reference to two tables? how to do it?oracle trigger question
Help on MS SQL codeBasic oracle questions.
MySQL table either insert or drop/truncate table running foreverOracle求助,thanks!!!
another question--怎么delete a row from a tableSQL Server Trigger on System Base Table or Catalog View
No Need for trigger Re: oracle trigger questionCan I execute alter inPL/SQL
急问:如何恢复被删除的数据?sql server 面试题 (9)
相关话题的讨论汇总
话题: truncate话题: delete话题: oracle话题: table话题: 区别