当前位置:首页 » 编程语言 » sql递归删除

sql递归删除

发布时间: 2023-03-29 03:07:58

⑴ oracle删除表的时候时候出现递归sql级别2出现错误表或视图不存在,在sysiao中删除用户也是是这个错,求解

这是典型的语法错误。
表名不存在。
或,把你的SQL复制出来。

⑵ oracle 表删除出错 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01426: 数字溢出

解决办法:
在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下:
1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计算机名字或者ip,端口号还是1521,然后保存让宴。
2.重启监听服务。
3.启动Database configuration Assistant “配置数据库选件”就可以重新配置em了,而不用枯贺删除数据库。再次创建数据库坦败银时也不会报如上的错误。

⑶ 递归SQL语句、索引的HEIGHT和BLEVEL以及SELECT FOR UPDATE相关问题

1,所谓的递归sql就是在运行当前的sql时调用另外一个sql,如果另外一个sql又调用了另一个sql,那么递归深度就是1(从0开始)。

2,unique scan一般出现在扫描具有unique约束的索引列上:

scott@ORCL>select * from emp where empno=7788;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7788 TEST ANALYST 7566 09-12月-83 10000 20

执行计划
----------------------------------------------------------
Plan hash value: 1181765974

---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 37 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 37 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | EMP_EMPNO_IDX | 1 | | 0 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

因为CBO知道这个索引是唯一的,所以确裤瞎定在扫描时只会返回一个rowid。

而range scan一般是扫描非唯一索引时,原理同上含旦,不再赘述。

3,scott@ORCL>analyze index emp_empno_idx validate structure;

索引已分析

scott@ORCL>select HEIGHT from index_stats;

HEIGHT
----------
1

scott@ORCL>select blevel from user_indexes where index_name='EMP_EMPNO_IDX'谈纯扰;

BLEVEL
----------
0

另外平衡树的索引结构如下:

1
/\
/ \
2 3
/ \
4 5

height也就是索引的高度,这里是3。

而blevel指的是从根遍历到当前块要走的路径长度,比如:2,3的blevel为1;4,5的为2,根本身的blevel为0

而在user_indexes中的blevel字段值正是上面值的最大值,通常等于树的高度,即height值:

下面是实例说明:

scott@ORCL>create table test as select * from sys.SOURCE$;

表已创建。

scott@ORCL>desc test
名称
-----------------------------------------------------------------------------------------------------

OBJ#
LINE
SOURCE

scott@ORCL>create index test_idx on test(obj#);

索引已创建。

scott@ORCL>analyze index test_idx validate structure;

索引已分析

scott@ORCL>select blevel from all_indexes where lower(index_name)='test_idx';

BLEVEL
----------
2

4,当然可行,因为这时其它行是没有被锁定的。
scott@ORCL>select * from emp where deptno=10 for update;

sys@ORCL>delete from scott.emp where deptno!=10;

已删除11行。

其实有的问题只要自己动手实践一下就行了,另外树高度为三级的索引是非常罕见的,除非你的表是非常的巨大。

⑷ sql触发器 递归 问题

触发器有两种不同的递归方式,直接递归和间接递归。

1.直接递归

当触发器被激活并执行一个操作时,该操衡销作又使用同一个触发器再次执行操作,被称为直接递归。

例利用触发器的直接递归,当在表中删除一条记录时,通过触发器删除表中所有编号相同的记录。

2.间接递归

更改表1中的数据时,触发器被激活并执行一个操作,而该操作又使另一个表2中的某个触发器被激活。表2中的这个触发器使表1得到更新,从而再次激活表1中的触发器,被称为间接递归。

例如,一应用程序更新了氏滚表TA,并引发触发器Trigger_A。Trigger_A更新表TB,从而使触发器Trigger_B被引发。Trigger_B转而更新表TA,从而使Trigger_A再次被引发间接递归。

可以利用系统存储过程sp_dboption关闭直接递归,但这又会开启间接递归。若要把这两种类型的递归都禁止,需要使用系统存储过程sp_configure。
参考资料:明日系列编程词典--SQL Server 编程咐核游词典体验版

⑸ sql2005 根据子ID递归查询所有父ID,如下,问:dbo怎么才能否去掉

因为你的with后面的名启者闭称和悄裂表的名称一样了,冲突了嫌隐。
WITH XI_news_Class 改成with 其他名称

⑹ sql无限递归如何删除

CREATE PROCEDURE up_delete
@delid int

AS
declare @cnt int
select count(1)=@cnt from table where parentid=@delid
if (@cnt >0)
begin
exec up_delete @delid
end
delete from table where id=@delid

go

调用方法 exec up_delete @id,会删除某个id以及此id的所有子早猛兆类知扒。陆租

⑺ sql如何利用递归批量删除数据

在设计数据库是 考虑 外键的添加,然后 项目中 利用 级联删除 实现你想要的效果。。。

⑻ SQL递归或级联删除操作,无限极,无限量

设置外键,在数据库中启用级联删除和级联更新选项

⑼ 在oracle数据库中,想要删除一个用户,但是报递归SQL级别1出现错误,表或视图不存在,请问有办法解决吗

drop user 用户名 cascade;
删除用户的同时会把该用户模式下的对象也删除。

⑽ oracle 10g 删除用户时提示ORA-00604 :递归SQL级别 1

用sys用户登录 删除。

热点内容
瑞纳自动买哪个配置 发布:2024-11-02 20:18:45 浏览:559
sql复制数据库结构 发布:2024-11-02 20:18:43 浏览:582
yaf编译 发布:2024-11-02 20:06:30 浏览:126
小数除以大数怎么算法 发布:2024-11-02 19:44:59 浏览:810
安卓手机如何重新设置付款密码 发布:2024-11-02 19:31:44 浏览:980
多巴胺3mg静脉注射怎么配置 发布:2024-11-02 19:25:50 浏览:618
源码之城 发布:2024-11-02 19:24:43 浏览:513
国军标环境存储要求 发布:2024-11-02 19:23:04 浏览:107
sql多行转多列 发布:2024-11-02 19:17:52 浏览:119
linuxftp文件夹权限 发布:2024-11-02 19:17:03 浏览:899