加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

mysql存储过程执行拼接sql字符串

(2020-12-17 08:55:09)
标签:

存储过程

sql字符串

sql拼接

分类: mysql
DELIMITER //
CREATE
    PROCEDURE `test`.`add_test`()
    BEGIN
        DECLARE t1 int default date_format(DATE_ADD(NOW(),INTERVAL 1 MONTH),"%Y%m");
        DECLARE t2 int default unix_timestamp(date_format(DATE_ADD(NOW(),INTERVAL 2 MONTH),"%Y-%m-01"));
        declare s1 varchar(32);
        DECLARE _sql VARCHAR(255);
  
        set s1 = CONCAT('p',t1);
        set _sql = CONCAT("ALTER TABLE test.`lzc_test` ADD PARTITION(PARTITION ",s1," VALUES LESS THAN (",t2,"))");

        ############以下为重点############

        ## 普通变量改为全局变量
        set @test_sql = _sql;
        ## 预处理需要执行的动态SQL,其中stmt是一个变量
        PREPARE stmt1 FROM @test_sql;
        ##执行SQL语句
        EXECUTE stmt1;
        ## 释放掉预处理段
        DEALLOCATE PREPARE stmt1 ;

        ############以上为重点############

    END //
DELIMITER 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有