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

如何将Employee表的e_name值复制到Person表新增的p_name列中?

同步Employee表e_name到Person表p_name的方法

核心实现方法(UPDATE JOIN)

这是最直接高效的方式,通过两张表的关联键(p_key和e_key)匹配对应行,批量更新p_name列:

UPDATE PERSON
JOIN Employee ON PERSON.p_key = Employee.e_key
SET PERSON.p_name = Employee.e_name;

该语句会自动匹配两张表中键值一致的记录,将Employee表的e_name赋值给Person表对应的p_name。

其他可行的复制方式

1. 带子查询的UPDATE语句

如果你的数据库不支持JOIN式UPDATE,可以用关联子查询实现:

UPDATE PERSON
SET p_name = (
    SELECT e_name FROM Employee 
    WHERE Employee.e_key = PERSON.p_key
)
WHERE EXISTS (
    SELECT 1 FROM Employee 
    WHERE Employee.e_key = PERSON.p_key
);

WHERE EXISTS用于仅更新在Employee表中有匹配记录的行,避免无匹配时p_name被设为NULL。

2. 全量同步场景方案(插入+更新)

若需要定期全量同步,可通过插入并覆盖的方式处理(以MySQL为例):

INSERT INTO PERSON (p_key, p_name)
SELECT e_key, e_name FROM Employee
ON DUPLICATE KEY UPDATE p_name = VALUES(p_name);

这种方式既能同步已有记录的p_name值,也能同步新增的关联记录。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 07:54:18