mysql动态表名

DELIMITER $$

USE `yunva-storage`$$

DROP PROCEDURE IF EXISTS `sp_add_push_msg`$$

CREATE DEFINER=`root`@`%` PROCEDURE `sp_add_push_msg`(
    IN i_userid  BIGINT UNSIGNED
   ,IN i_session VARCHAR(32)
   ,IN i_msg     VARCHAR(8196)
)
    SQL SECURITY INVOKER
BEGIN
    /*
    修订记录:
    ----------------------------------------------------------------
    版本   修订人    修订日期    审核人    审核日期     修订描述
    ----------------------------------------------------------------
    1.0    刘柱    2014-12-11                         插入push消息
    ----------------------------------------------------------------
    */
    
    
    SET @tname = CONCAT('tbl_msg_0', i_userid % 10);
    SET @p1 = i_userid;
    SET @p2 = i_session;
    SET @p3 = i_msg;    
    
    SET @sqlcmd = CONCAT('insert into ', @tname, ' (userid, session, msg) values (?, ?, ?)'); 
     
    PREPARE stmt FROM @sqlcmd;  
    EXECUTE stmt USING @p1, @p2, @p3;  
    DEALLOCATE PREPARE stmt;  
    
END$$

DELIMITER ;

 

posted on 2014-12-11 15:53  kangbry  阅读(2121)  评论(0编辑  收藏  举报

导航