Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 复制行及其所有';儿童';_Mysql_Sql - Fatal编程技术网

Mysql 复制行及其所有';儿童';

Mysql 复制行及其所有';儿童';,mysql,sql,Mysql,Sql,我有一个名为employees的MySQL表。还有另一个名为shift的表,它通过employeeId列和一对多关系与employeeId相关联。我想使用INSERT克隆一名员工及其班次-因此employee行被克隆,而班次都被克隆,并具有为新员工生成的新的自动递增主键。在一次查询中是否可以执行此操作?可以,但不需要一次插入 您将有一个INSERT来处理员工,然后有第二个INSERT和一个子SELECT来选择所有的轮班数据 以下是一些如果您想多次执行此操作,或者希望在批量级别执行此操作,请创建一

我有一个名为
employees
的MySQL表。还有另一个名为
shift
的表,它通过
employeeId
列和一对多关系与
employeeId
相关联。我想使用
INSERT
克隆一名员工及其班次-因此
employee
行被克隆,而
班次
都被克隆,并具有为新
员工
生成的新的自动递增主键。在一次查询中是否可以执行此操作?

可以,但不需要一次插入

您将有一个INSERT来处理员工,然后有第二个INSERT和一个子SELECT来选择所有的轮班数据


以下是一些

如果您想多次执行此操作,或者希望在批量级别执行此操作,请创建一个sp,为员工插入重复条目,然后为其所有班次插入重复条目

比如:

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;

你可能需要两张,每张桌子一张。或者使用存储过程