在Oracle SQL Developer中,如果我正在查看表中的信息,我可以查看约束,这可以让我看到外键(以及此表引用哪些表),并且我可以查看依赖项以查看内容包等参考表.但我不知道如何找到哪些表引用该表.
例如,假设我正在看emp桌子.还有另一个表emp_dept,用于捕获哪些员工在哪些部门(emp通过该表引用表emp_id)的主键中工作emp.有没有办法(通过程序中的某些UI元素,而不是通过SQL)找到emp_dept表引用emp表,而不必知道emp_dept表存在?
而不是删除子行,然后编写另一个sql语句来删除父行,我想使用一个语句来执行这两个操作.仅供参考:我们使用Oracle数据库.
更新:我没有权利做DELETE ON CASCADE
我有一个约100k记录的表,我想删除一些行,问题是该DELETE语句运行速度非常慢 - 它没有在30分钟内完成.但该select声明在1秒内回归.
该SELECT声明如下:
select * from daily_au_by_service_summary
where summary_ts >= to_date('09-04-2012','dd-mm-yyyy')
order by summary_ts desc;
Run Code Online (Sandbox Code Playgroud)
并DELETE声明如下:
delete from daily_au_by_service_summary
where summary_ts > to_date('09-04-2012','dd-mm-yyyy');
Run Code Online (Sandbox Code Playgroud)
此表的唯一索引位于summary_ts.
可能是什么原因?
编辑:该表被许多会话锁定:
SESSION_ID ORACLE_USERNAME OS_USER_NAME OBJECT OWNER OBJECT_NAME OBJECT_TYPE LOCKED_MODE
---------- ------------------------------ ------------------------------ ------------------------------ -------------------------------------------------------------------------------------------------------------------------------- ------------------- -----------
213 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
203 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
202 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3
190 T03RPT elou T03RPT DAILY_AU_BY_SERVICE_SUMMARY TABLE 3 …Run Code Online (Sandbox Code Playgroud)