mysql查询后生成一张表_mysql 查询记录并插入另一张表

该博客内容涉及创建并调用一个名为insert_extra_column_test的存储过程,用于从bd_house表中选取未被bd_house_customer表引用的houseId和houseName,然后将这些数据插入到bd_house_customer表中,指定tenant_id为1111,customer_id也为1111,并填充其他相关字段。
摘要由CSDN通过智能技术生成

从 bd_house 查询 houseId, houseName,   插入 bd_house_customer

DROP PROCEDURE IF EXISTS insert_extra_column_test;

DELIMITER //

CREATE PROCEDURE insert_extra_column_test()

BEGIN

-- 声明变量

DECLARE newId LONG;

DECLARE houseId LONG;

DECLARE houseName VARCHAR ( 50 );

DECLARE num integer;

-- 声明接收结果的游标

DECLARE

house CURSOR FOR

-- 查询记录

SELECT

id houseId,

NAME houseName

FROM bd_house

WHERE

id NOT IN ( SELECT house_id FROM bd_house_customer WHERE customer_id = 1111)

ORDER BY id;

-- 打开游标

OPEN house;

-- 匹配第一个游标, 给变量赋值

FETCH house INTO houseId, houseName;

-- 这是固定遍历 100 次, 遍历全部可以用 while ( house is not null ) 判断

SET num = 100;

WHILE ( num > 0 ) DO

INSERT INTO `bd_house_customer` (

`id`,

`tenant_id`,

`house_id`,

`house`,

`customer_id`,

`customer`,

`change_cause`,

`relation_state`,

`remarks`,

`lease_type`,

`belong_house_name`,

`sign_date`,

`lease_source`,

`asset_use_type`

)

VALUES

(

houseId,

1111,

houseId,

houseName,

1111,

'张三',

'2222',

'currentTenant',

1,

'NewRent',

houseName,

NULL,

'PC_terminal',

'zzzz'

);

SET num = num - 1;

-- 匹配下一个游标并赋值

FETCH house INTO houseId, houseName;

-- 结束循环, 关闭游标

END WHILE;

CLOSE house;

END //

DELIMITER ;

CALL insert_extra_column_test();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值