mysql 存储过程复制_Mysql存储过程,用于复制父/子/孙子层次结构中的记录

我有3个表父母,孩子和&形式的孙子:

+----------------+ +----------------+ +---------------------+

| parent | | child | | grandchild |

+----------------+ +----------------+ +---------------------+

| parent_id (PK) | | child_id (PK) | | grandchild_id (PK) |

| parent_data | | child_data | | grandchild_data |

+----------------+ | parent_id (FK) | | child_id (FK) |

+----------------+ +---------------------+

PK =自动递增主键.

FK =外键.

我想要一个存储过程,可以复制父表中的记录以及子表和孙表中的任何相关记录.我可以将父数据和子数据复制好,这是我正在努力的孙子表.这是我所拥有的:

CREATE FUNCTION sf_copy_parent(p_parent_id INT) RETURNS INT

BEGIN

DECLARE new_parent_id INT;

-- create new parent record

INSERT INTO parent(parent_data)

SELECT parent_data FROM parent

WHERE parent_id=p_parent_id;

SET new_parent_id=LAST_INSERT_ID();

-- copy child records

INSERT INTO child(child_data,parent_id)

SELECT child_data,new_parent_id FROM child

WHERE parent_id=p_parent_id;

-- copy grandchild records ???

-- return

RETURN new_parent_id;

END

我正在使用MysqL5.5,如果这很重要的话.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值