社区
基础和管理
帖子详情
存储过程中含有ddl语句无法实现rollback吗?
yingtju
2008-05-06 11:38:35
查了好久 自己的结论是无法实现
不知道大家有没有什么好的方法
现在需求很恶心 可以建表 没权限删表
不知道怎么搞好了
...全文
260
12
打赏
收藏
存储过程中含有ddl语句无法实现rollback吗?
查了好久 自己的结论是无法实现 不知道大家有没有什么好的方法 现在需求很恶心 可以建表 没权限删表 不知道怎么搞好了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yingtju
2008-05-07
打赏
举报
回复
我没有drop的权限啊
看来是没什么好办法了
散分~
zhpsam109
2008-05-06
打赏
举报
回复
可以考虑使用临时表啊!
Andy__Huang
2008-05-06
打赏
举报
回复
所有DDL语句都会自动提交的,没有rollback语句
我想你可以通过后面的语句判断,是否把数据清空,不一定要删除表
allanmorgan
2008-05-06
打赏
举报
回复
再写一段删除的语句吧,在Exception中判断,有错误就执行这些drop操作。
dlpseeyou
2008-05-06
打赏
举报
回复
猛学
v888
2008-05-06
打赏
举报
回复
关注
jason819
2008-05-06
打赏
举报
回复
学习!
qiyousyc
2008-05-06
打赏
举报
回复
就是在exception中判断,执行删除的ddl语句。
qiyousyc
2008-05-06
打赏
举报
回复
变态的要求
错误了,判断执行的步骤,生成新的dll语句删除不就可以了。
rollback不支持ddl语句的。
临摹
2008-05-06
打赏
举报
回复
不光在存储过程里面,所有DDL语句都会自动提交的,
甚至把DDL语句之前执行的操作也都COMMIT了,
建立临时表也可以,但用完之后临时表也DROP不掉呀。
yingtju
2008-05-06
打赏
举报
回复
嗯 我说的不够详细 不仅是表的问题,存储过程中涉及的操作有:
1. 创建user(数据库的user,每个user都有自己的表)
2. 创建user table,grant privs
3. create trigger on user table
4. 在应用的users表中记录user
即使4错了也要rollback,1建的用户要删掉
都是ddl dcl 想不通该怎么办
robin_ares
2008-05-06
打赏
举报
回复
[Quote=引用 1 楼 zhpsam109 的回复:]
可以考虑使用临时表啊!
[/Quote]
可以的,你可以先建一个镜像的临时表,所有操作都ok后,在变成正式表。别忘了做个任务,让有权限的一方把昨天以前的临时表删掉
DB2
中
常用的SQL
语句
DB2
中
常用的SQL
语句
经典SQL
语句
集锦 SQL分类:
DDL
—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,
ROLLBACK
)
详解MySQL
中
DROP,TRUNCATE 和DELETE的区别
实现
mysql从零开始
不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop
语句
将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的
存储过程
/函数将保留,但是变为invalid状态. 2.delete
语句
是dml,这个操作会放到
rollback
segement
中
,事务提交之后才生效;如果有相应的trigger, 执行的时候将被触发. truncate,drop是
ddl
, 操作立即生效,原数据不放到
rollback
segment
中
,不能回滚. 操作不触发 trigger. 3.delete
语句
不
赵强老师:Oracle数据库从10g到11g(3)DML
语句
和
DDL
语句
学习并掌握DML
语句
:insert、update和delete
语句
;并能够使用
DDL
管理常见的数据库对象:表、视图、序列、索引和同义词。
MySQL 最基本的SQL语法/
语句
DDL
—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,
ROLLBACK
) 首先,简要介绍基础
语句
: 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server — 创建 备份数据的 device USE master EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mss
oracle
存储过程
ddl
,Oracle
存储过程
中
的
DDL
语句
Oracle的
存储过程
,是我们使用数据库应用开发的重要工具手段。在
存储过程
中
,我们大部分应用场景都是使用DML
语句
进行数据增删改操作。本篇
中
,我们一起探讨一下数据定义
语句
DDL
在
存储过程
中
使用的细节和要点。1、“借道而行”的
DDL
从Oracle PL/SQL和
存储过程
程序开发原则上,应该是不鼓励在SP
中
使用
DDL
语句
的。首先一个表现,就是Oracle在编译时就不允许直接在SP
中
使用
DDL
语句
。下面...
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章