GBase 8a
运维管理
文章

merge 语句报错处理:when not able to build hash (redistribution) JOIN relationship between merge target and source.

发表于2025-12-29 13:16:1839次浏览2个评论

1.新建测试表: 

-- 创建目标表 employees
CREATE TABLE employees (
   employee_id INT PRIMARY KEY,
   employee_name VARCHAR(50),
   department VARCHAR(50)
);

-- 创建源表 new_employees
CREATE TABLE new_employees (
   employee_id INT PRIMARY KEY,
   employee_name VARCHAR(50),
   department VARCHAR(50)
);
2.插入数据

-- 向 employees 表插入数据
INSERT INTO employees (employee_id, employee_name, department) VALUES
(1, 'Alice', 'HR'),
(2, 'Bob', 'IT');

-- 向 new_employees 表插入数据
INSERT INTO new_employees (employee_id, employee_name, department) VALUES
(1, 'Alice Smith', 'HR'),  -- 更新 Alice 的姓名
(3, 'Charlie', 'Sales');    -- 新增员工 Charlie
 

3.执行merge 

MERGE INTO employees e
USING new_employees n
ON (e.employee_id = n.employee_id)
WHEN MATCHED THEN
   UPDATE SET e.employee_name = n.employee_name, e.department = n.department
WHEN NOT MATCHED THEN
   INSERT (employee_id, employee_name, department)
   VALUES (n.employee_id, n.employee_name, n.department);

报错: (GBA-02SC-1001) Can't DO Merge when not able to build hash (redistribution) JOIN relationship between merge target and source.

修改目标表结构:关联字段需要作为分布键 

CREATE TABLE employees (

    employee_id INT PRIMARY KEY,

    employee_name VARCHAR(50),

    department VARCHAR(50)

) distributed by ('employee_id');


 

修改后执行: 


 

评论

登录后才可以发表评论
崔哥发表于 4个月前
春风倚棹阖闾城,水国春寒阴复晴。细雨湿衣看不见,闲花落地听无声。日斜江上孤帆影,草绿湖南万里情。东道若逢相识问,青袍今已误儒生。
茵陈发表于 2个月前
向大佬学习