You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL中基于关联表批量插入重复用户对应组记录的方法

Oracle SQL 批量插入重复LOGIN-NAME对的缺失记录到groups表

完整INSERT语句

通过关联表匹配对应USER_GUID,实现批量插入的SQL如下:

INSERT INTO groups(owner_guid, user_guid)
SELECT o.guid, g.user_guid
FROM owners o
JOIN owners o_exist ON o.login = o_exist.login AND o.name = o_exist.name
JOIN groups g ON o_exist.guid = g.owner_guid
WHERE 
  (o.login, o.name) IN (
    SELECT login, name 
    FROM owners 
    GROUP BY login, name 
    HAVING COUNT(*) > 1
  )
  AND o.guid NOT IN (SELECT owner_guid FROM groups)
  AND NOT EXISTS (
    SELECT 1 
    FROM groups g_dup 
    WHERE g_dup.owner_guid = o.guid
  );

语句说明

  • 通过自关联owners表,找到同LOGIN-NAME对下已存在于groups的记录,以此获取对应的user_guid。
  • 子查询筛选出LOGIN-NAME重复的用户组,同时排除已在groups表中的GUID。
  • 最后添加NOT EXISTS子句,避免重复执行时插入重复记录。

内容的提问来源于stack exchange,提问作者dtm_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:53:21