复制行及其所有“孩子”

时间:2011-07-20 19:00:16

标签: mysql sql

我有一个名为employees的MySQL表。另一个名为shifts的表格与employees列的employeeId和一对多关系相关联。我想使用INSERT克隆一名员工和他的班次 - 所以克隆了employee行,并且shifts都被克隆并且具有为其生成的新的自动递增主键新的employee。这在一个查询中是否可行?

2 个答案:

答案 0 :(得分:5)

是,但没有一个插页。

你有一个INSERT来做员工,然后是第二个带有子SELECT的INSERT来选择所有的班次数据。

以下是一些examples

答案 1 :(得分:2)

如果您想多次这样做,或者想要在批量级别上执行此操作,请创建一个sp,为员工插入一个dupe条目,然后为他的所有班次插入dupe条目。

类似的东西:

CREATE PROCEDURE sp_cloneEmployee
@employeeId int
AS
INSERT INTO employees
SELECT * FROM employees
WHERE employeeId = @employeeId;

INSERT INTO shifts
SELECT * FROM shifts 
WHERE employeeId = @employeeId;