UPDATE (SELECT /*+ BYPASS_UJVC */ sys_users.DEPARTMENT_ID sysvalue,v_users.DEPARTMENT_ID vvalue FROM sys_users,v_users WHERE sys_users.ID=v_users.person_id and v_users.DEPARTMENT_ID != sys_users.DEPARTMENT_ID) SET sysvalue=vvalue
/*+ BYPASS_UJVC */ 是oracle的一种写法,大意是跳过唯一性检查,强制执行更新。如果没有这一段,可能无法执行这条sql。当然加上这一段就有可能对同一条记录更新多次,特定情况下会有不可预知的影响。
如何相连接的表之间有主外键关系。则不需要增加/*+ BYPASS_UJVC */ 。否则,oracle会报错.