суббота, 23 июля 2011 г.

mysql cursor

drop procedure if exists myProc;

delimiter $$
CREATE PROCEDURE myProc ()
BEGIN
DECLARE l_sklad INT;
DECLARE l_zbozi INT;
DECLARE l_id INT;
DECLARE l_cena decimal;
DECLARE no_more INT;

DECLARE dept_csr CURSOR FOR
SELECT id_sklad,id_zbozi,cena
FROM sklad.`ostatki_sklad` where cena <>0;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more=1;
SET no_more=0;
OPEN dept_csr;
dept_loop:WHILE(no_more=0) DO
FETCH dept_csr INTO l_sklad,l_zbozi,l_cena;
IF no_more=1 THEN
LEAVE dept_loop;
END IF;

SELECT id into l_id FROM sf_sklad.product WHERE id = l_zbozi;
IF l_id THEN
INSERT INTO `sf_sklad`.`invoice_cennik` (
`product_id` ,
`client_id` ,
`price` ,
`user_id` ,
`created_by` ,
`created_at` ,
`updated_by` ,
`updated_at`
)
VALUES (l_zbozi, l_sklad, l_cena, '1', 1 , '2011-05-23 21:49:42', '1', '2011-05-23 21:50:03');

SELECT l_zbozi,l_sklad, l_cena;
END IF;
END WHILE dept_loop;
CLOSE dept_csr;
SET no_more=0;
END$$


delimiter ;

Комментариев нет:

Отправить комментарий