mysql创建存储过程

#1、备份当前table1的数据到table1_backup;
create table table1_backup like table1;
CREATE PROCEDURE sp_backup_table1()
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE z INT DEFAULT 0;
SELECT CEIL(COUNT(1)/100000)*100000 INTO z FROM table1;
bak:loop
    if i >= z THEN
        LEAVE bak;
    end if;
    if i < z then
        INSERT INTO table1_backup SELECT * FROM ctc_blackform LIMIT i, 100000;
    end if;
    set i=i+100000;
end loop bak;
END;
CALL sp_backup_table1();   #执行存储过程

2、与table2匹配,在table1中不存在的号码数据插入table1表
CREATE PROCEDURE sp_add_table () BEGIN
    DECLARE
        i INT DEFAULT 0;
    DECLARE
        z INT DEFAULT 0;
    SELECT
        CEIL( COUNT( 1 )/ 10000 )* 10000 INTO z
    FROM
        table2;
    adddata :
    LOOP
        IF
            i >= z THEN
                LEAVE adddata;            
        END IF;
        IF
            i < z THEN
                INSERT IGNORE INTO table1 SELECT #重复数据忽略,只插入不重复的
                *
            FROM
                ( SELECT * FROM table2 LIMIT i, 10000 );            
        END IF;    
        SET i = i + 10000;        
    END LOOP adddata;
END;
CALL sp_add_table();

 

posted @ 2023-11-01 09:56  菜菜陈  阅读(59)  评论(0)    收藏  举报