有人可以告诉我此插入语句出了什么问题吗? 如果尚未存在USER_ID,OBJECT和DATE的组合,我尝试从PERMS_STG2表向USERS_AND_USAGE_STG2表中插入新行。
USERS_AND_USAGE_STG2具有唯一的密钥DATE,USER_ID和OBJECT。 当我运行下面的语句时,它出现“ INSERT Failed。2801:重复的唯一主键错误在...中的错误”。 **我意识到登台表通常没有唯一键,但这是在告诉我我的“如果不存在,请插入”无法正常工作。
INSERT INTO WORK1.USERS_AND_USAGE_STG2
(EFF_DT
,USER_ID
,SP_ADDED_DT
,OBJECT
,ACCESS_IS_ACTIVE)
SELECT
EFF_DT
,USER_ID
,EFF_DT
,COMBO_NAME
,'Y'
FROM WORK1.PERMS_STG2 P
WHERE NOT EXISTS (SELECT USER_ID, OBJECT
FROM WORK1.USERS_AND_USAGE_STG2
WHERE USER_ID = P.USER_ID
AND OBJECT = P.COMBO_NAME
AND EFF_DT = P.EFF_DT);
答案 0 :(得分:0)
上面的代码是/正确的。我的源数据有问题。 @JNevill指出这一点值得称赞。