`
weigang.gao
  • 浏览: 488427 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

/*+ BYPASS_UJVC*/

 
阅读更多

 在使用implict update table 时,oracle会自动检查唯一性约束,因此关联的2张表的字段一定要有唯一性约束,否则会报错!但是可以使用hints:/*+ BYPASS_UJVC*/ 屏蔽掉对唯一性的检查。具体测试过程如下: 

create table student(
   student_id number,
   name varchar2(30),
   birthday date,
   sex char(1),
   constraints pk_student_id primary key(student_id)
);

insert into student(student_id, name, birthday, sex) values ('2', '高伟刚',
                    to_date('1991-01-09', 'yyyy-mm-dd'), 'M');
insert into student(student_id, name, birthday, sex) values ('3', '高红成',
                    to_date('1991-01-02', 'yyyy-mm-dd'), 'M');
insert into student(student_id, name, birthday, sex) values ('4', '彭传志',
                    to_date('1991-01-24', 'yyyy-mm-dd'), 'M');

create table teacher(
   teacher_id number unique,
   name varchar2(30),
   birthday date,
   sex char(1),
   constraints pk_teacher_id primary key(teacher_id)
);
insert into teacher(teacher_id, name, birthday, sex) values ('2', '李艳',
                    to_date('1971-01-09', 'yyyy-mm-dd'), 'M');
insert into teacher(teacher_id, name, birthday, sex) values ('3', '熊松涛',
                    to_date('1976-04-02', 'yyyy-mm-dd'), 'M');

 --student_id和teacher_id都是主键,具有唯一性约束

update (select s.name as s_name,
               t.name as t_name from student s, teacher t 
                               where s.student_id =  t.teacher_id)--因为student_id和teacher_id是主键,所以可以直接implict update
         set s_name = t_name

 

--假如student_id和teacher_id其中有一个不是主键或2个都不是主键(没有唯一性约束)时,使用implict udpate 会报如下错误:

   cannot modify a column which maps to a non key-preserved table

解决:我们可以使用hints:/*+BYPASS_UJVC*/屏幕掉唯一性检查,屏幕唯一性检查效率会提高。

update  (select /*+ BYPASS_UJVC */ --屏蔽掉对student_id与teacher_id唯一性检查
                s.name as s_name, 
                t.name as t_name from student s, teacher t
                                where s.student_id =  t.teacher_id)
         set s_name = t_name

 

分享到:
评论

相关推荐

    Oracle批量更新方法.pdf

    SELECT /*+BYPASS_UJVC*/ bl.material_id AS bl_material_id, ibdb.material_id AS ibdb_material_id FROM scm_barcode_location bl, scm_input_bill_detail_barcode ibdb WHERE bl.bar_code = ibdb.bar_code AND...

    Winlicense HWID 研究——合集_hwid_WinLicenseHWID_cpuid_机器码_WinLicense_

    Winlicense 机器码 算法 ,经典的 CPU_ID + BIOS_ID + HD_ID + MAC_ID+校验

    STM32-16-CAN-正常模式YMXB-0402.rar

    //RCC_HSEConfig(RCC_HSE_Bypass); RCC_HSEConfig(RCC_HSE_ON);//亚明小板设置方法 (最常用的无源晶振设置方法) /* Wait till HSE is ready 等待 HSE 起振*/ HSEStartUpStatus = RCC_WaitForHSEStartUp(); if ...

    BCM5396 评估板原理图

    - **BYPASS_CLK1_EN/BYPASS_CLK1**:旁路时钟信号。 - **HW_FWDG_EN/AUTO_POLL_DIS/OVSTB/QOS_EN/QOS_FC_OFF/WD_CLR_EN**:各种控制信号,涉及硬件转发、自动轮询禁用、过载状态、服务质量等功能。 #### 六、结论 ...

    Bypass_1.13.79.zip

    Bypass_1.13.79.zip

    Loadrunner函数汇总

    21. **web_set_proxy**、**web_set_proxy_bypass** 和 **web_set_secure_proxy**: 配置代理服务器,控制Vuser如何通过代理访问网络资源。 22. **web_set_max_retries** 和 **web_set_timeout**: 设置操作的重试次数...

    loadrunnerWeb函数[归类].pdf

    22. **web_set_proxy**、**web_set_proxy_bypass**、**web_set_proxy_bypass_local**、**web_set_secure_proxy**:管理Vuser的代理设置,控制如何通过或绕过代理服务器。 23. **web_set_max_retries** 和 **web_set...

    loadrunnerWeb函数-4页.pdf

    21. **web_set_proxy**、**web_set_proxy_bypass** 和 **web_set_secure_proxy**:配置Vuser的代理设置,包括指定代理服务器、直接访问某些服务器以及设置安全代理。 22. **web_set_max_retries** 和 **web_set_...

    loadrunnerWeb函数[收集].pdf

    22. **web_set_proxy**,**web_set_proxy_bypass**,**web_set_secure_proxy**:设置代理服务器的使用规则,包括直接访问某些服务器或绕过代理。 23. **web_set_max_retries** 和 **web_set_timeout**:控制请求的...

    hikvision_CVE-2017-7921_auth_bypass_config_decryptor-main.zip

    标题 "hikvision_CVE-2017-7921_auth_bypass_config_decryptor-main.zip" 指向的是一个与海康威视(Hikvision)设备相关的安全漏洞,具体是CVE-2017-7921认证绕过漏洞。这个压缩包可能包含一个工具或指南,用于解析...

    loadrunner常用函数

    17. **web_set_proxy_bypass**:指定URL列表,允许虚拟用户直接访问这些URL,而不是通过代理服务器。这有助于优化性能测试过程。 18. **web_set_proxy_bypass_local**:指定是否通过本地代理地址访问。这对于控制...

    new.bypass_bypass_NEW_免杀_webshell_phpwebshell_

    【标题】"new.bypass_bypass_NEW_免杀_webshell_phpwebshell_" 指的是一种新型的Webshell,它带有“bypass”和“NEW”特性,表明这是一个旨在绕过安全检测,且是最新技术的PHP Webshell。Webshell通常被黑客用于远程...

    MPL_bypass_HS

    【MPL_bypass_HS】是关于网络协议与路由优化的一个技术主题,主要涉及到MPLS(多协议标签交换)技术的HS(Hot Standby)功能和一种可能的优化策略。MPLS是一种在IP网络中用于提高数据传输效率和网络性能的协议,它...

    bypass_360_meterpreter免杀技巧1

    在网络安全和渗透测试领域,绕过安全软件的检测是常见的技术挑战。... Meterpreter是一种强大的远程控制工具,常用于Metasploit框架中。它的主要功能是提供一个交互式的会话,允许攻击者在目标系统上执行各种操作。...

    Pro Bangla Bypass Tool_probangla_bypass_tool_icloud_Icloudbypass

    标题中的“Pro Bangla Bypass Tool_probangla_bypass_tool_icloud_Icloudbypass”显然是一个工具或软件的名称,专门用于绕过苹果设备的iCloud锁。这个工具可能是针对那些忘记了Apple ID或密码,或者购买了带有iCloud...

    nginx 参考手册

    - **proxy_cache_bypass**: 控制是否绕过缓存,直接转发到后端。 6. **SSL/TLS 支持** - **ssl**: 开启 SSL 功能。 - **ssl_certificate** 和 **ssl_certificate_key**: 分别指定 SSL 证书和私钥文件路径。 - *...

    攻击Sql server 服务(第三十四课).docx

    - **post/windows/manage/mssql_local_auth_bypass** - **功能**: 绕过本地认证机制,获取更高权限。 - **应用场景**: 在成功攻破SQL Server后,为进一步横向移动或提权做准备。 #### 四、实操步骤 1. **启动...

    从ByteCTF到bypass_disable_function1

    标题中的"从ByteCTF到bypass_disable_function1"指的是在网络安全竞赛ByteCTF中涉及到的一个技术挑战,即如何绕过`disable_function`的安全限制。`disable_function`是PHP配置中的一个选项,用于禁用某些可能带来...

    Bypass_1.14.62.zip

    标题"Bypass_1.14.62.zip"暗示了一个软件更新版本,即Bypass的1.14.62版,它被压缩在ZIP文件中。ZIP是一种常见的文件压缩格式,用于集合多个文件并减少它们的整体大小以便于存储和传输。在描述中提到的“bypass 抢票...

    nginx调优.zip

    2. **proxy_cache_bypass** 和 **proxy_no_cache**: 控制何时不使用缓存,例如更新内容时。 3. **proxy_cache_key**: 自定义缓存键,影响缓存命中率。 **三、负载均衡** 1. **upstream**: 配置后端服务器组,通过...

Global site tag (gtag.js) - Google Analytics