Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 什么是甲骨文';“s提示”;限制“所有参考”选项;?_Sql_Oracle - Fatal编程技术网

Sql 什么是甲骨文';“s提示”;限制“所有参考”选项;?

Sql 什么是甲骨文';“s提示”;限制“所有参考”选项;?,sql,oracle,Sql,Oracle,我在这样一份声明中发现: delete /*+ restrict_all_ref_cons */ from table_1 where ... 有人能提供一些信息来说明这个提示在做什么吗 该数据库是Oracle数据库10.2.0.3.0。提示禁用级联删除,因此从父表中删除时不会从子表中删除子行 参见这里的示例 创建表s11(x int主键); 创建表s12(y int主键,x引用删除级联上的s11); 插入s11值(1); 插入s12值(1,1); 犯罪 SQL>从s11中删除; 删除1行

我在这样一份声明中发现:

delete /*+ restrict_all_ref_cons  */ from table_1 where ...
有人能提供一些信息来说明这个提示在做什么吗


该数据库是Oracle数据库10.2.0.3.0。

提示禁用级联删除,因此从父表中删除时不会从子表中删除子行

参见这里的示例

创建表s11(x int主键);
创建表s12(y int主键,x引用删除级联上的s11);
插入s11值(1);
插入s12值(1,1);
犯罪
SQL>从s11中删除;
删除1行。
SQL>从s12中选择*;
没有选择行回滚;
回滚完成。
SQL>delete/*+RESTRICT\u ALL\u REF\u CONS*/来自s11;
删除1行。
SQL>从s12中选择*;
create table s11 ( x int primary key );
create table s12 ( y int primary key, x references s11 on delete cascade );
insert into s11 values (1);
insert into s12 values (1, 1);
commit;
SQL> delete from s11;
1 row deleted.
SQL> select * from s12;
no rows selected <=========== when deleting parent row in s11, the child row in s12 is also deleted.

SQL> rollback;
Rollback complete.

SQL> delete /*+ RESTRICT_ALL_REF_CONS */ from s11;
1 row deleted.
SQL> select * from s12; <=========== with RESTRICT_ALL_REF_CONS hint, the child row will not be deleted.
Y X
---------- ----------
1 1