假设我有这两个表。在这里,我从staging
表中插入员工到employee
表。
staging表:
<表类>
id
employee_id
名称
tbody> <<tr> 1 12 保罗 2 13 凯尔 表类>
首先,您应该记住,是否创建唯一键或主键并不取决于如何创建插入语句等。这是一个你的桌子应该做什么和不应该做什么的问题。为了实现您的目标,您可以在插入语句中添加一个where,该where将排除已经存在的条目,例如:
INSERT INTO employees (id, employee_id, name)
SELECT id, employee_id, name
FROM staging
WHERE employee_id NOT IN (SELECT employee_id FROM employees)
把问题分解成各个组成部分
- 获取在staging表中但不在目标表中的员工列表
- 只插入这些记录
第1部分可以通过Left Join和Where条件来实现,即目标表为空。将其打包为CTE,然后在2)
中使用。