寫一個簡單的存儲過程實例的筆記

1,運行在phpmyadmin 上,用於插入數據,關聯產品與運費表php

 1 /*定義存儲過程分解符*/
 2 delimiter //
 3 DROP PROCEDURE IF EXISTS doShipping//
 4 CREATE PROCEDURE doShipping()
 5 BEGIN
 6     /*聲明變量*/
 7     DECLARE no_more_record INT DEFAULT 0;
 8     DECLARE i INT;
 9     DECLARE entityId BIGINT(10);
10     /*建立遊標變量*/
11     DECLARE cur_record CURSOR FOR SELECT entity_id FROM catalog_product_entity ORDER BY entity_id DESC;
12     DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record=1;
13 
14     OPEN cur_record;
15     /*抓取遊標變量*/
16     FETCH cur_record INTO entityId;
17     /*循環獲取每一個產品id*/
18     WHILE no_more_record !=1 DO
19         SET i=0;
20         /*循環關聯爲每一個產品關聯運費*/
21         WHILE i<4 DO
22             CASE i
23                 WHEN 0 THEN
24                 INSERT INTO directory_country_shipping(group_product_id,ship_method,ship_cost,ship_eachadd,ship_listcountry,
25     delivery_time,show_order,created_time,update_time) VALUES(entityId,'free','0.00','0.00','All Country','15-30','0',NOW(),NOW());    
26                 WHEN 1 THEN
27                 INSERT INTO yo_directory_country_shipping(group_product_id,ship_method,ship_cost,ship_eachadd,ship_listcountry,
28     delivery_time,show_order,created_time,update_time) VALUES(entityId,'standard','10.00','2.00','All Country','10-15','1',NOW(),NOW());                    
29                 WHEN 2 THEN
30                 INSERT INTO yo_directory_country_shipping(group_product_id,ship_method,ship_cost,ship_eachadd,ship_listcountry,
31     delivery_time,show_order,created_time,update_time) VALUES(entityId,'economical','9.00','3.00','All Country','5-10','2',NOW(),NOW());                
32                 ELSE
33                 INSERT INTO yo_directory_country_shipping(group_product_id,ship_method,ship_cost,ship_eachadd,ship_listcountry,
34     delivery_time,show_order,created_time,update_time) VALUES(entityId,'speedy','8.00','2.00','All Country','3-5','3',NOW(),NOW());    
35             END CASE;                                
36             SET i=i+1;
37         END WHILE;
38         FETCH cur_record INTO entityId;
39     END WHILE;
40     /*關閉遊標變量*/
41     CLOSE cur_record;
42 END;//
43 delimiter ;
相關文章
相關標籤/搜索