mysql模拟队列

页面导航:首页 > 数据库 > Mysql > mysql模拟队列

mysql模拟队列

来源: 作者: 时间:2016-02-21 09:46 【

mysql模拟队列Java代码 -- 初始化数据 DROP TABLE IF EXISTS t_msg_queues; CREATE TABLE t_msg_queues( msg_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, msg_content VARCHAR(255)...
mysql模拟队列
 
代码  
-- 初始化数据  
DROP TABLE IF EXISTS t_msg_queues;  
CREATE TABLE t_msg_queues(  
    msg_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,  
    msg_content VARCHAR(255) NOT NULL,  
    owner_thread_id INT NOT NULL DEFAULT -1,  
    PRIMARY KEY (msg_id)  
)ENGINE=INNODB DEFAULT CHARSET=utf8;  
SET @maxRandom = POWER(10,6);  
INSERT INTO `t_msg_queues`(`msg_content`)   
VALUES (CONCAT("cont_",CEIL(RAND()[email protected]))),(CONCAT("cont_",CEIL(RAND()[email protected])))  
    ,(CONCAT("cont_",CEIL(RAND()[email protected]))),(CONCAT("cont_",CEIL(RAND()[email protected])))  
    ,(CONCAT("cont_",CEIL(RAND()[email protected]))),(CONCAT("cont_",CEIL(RAND()[email protected])))  
    ,(CONCAT("cont_",CEIL(RAND()[email protected]))),(CONCAT("cont_",CEIL(RAND()[email protected])))  
    ,(CONCAT("cont_",CEIL(RAND()[email protected]))),(CONCAT("cont_",CEIL(RAND()[email protected])))  
    ,(CONCAT("cont_",CEIL(RAND()[email protected]))),(CONCAT("cont_",CEIL(RAND()[email protected])));  
      
-- 获取1条未处理的消息  
SET SESSION autocommit=1;  
SET @msgID = -1;  
UPDATE t_msg_queues SET owner_thread_id=GREATEST(CONNECTION_ID() ,(@msgID:=msg_id)*0)  
WHERE owner_thread_id=-1 ORDER BY msg_id LIMIT 1;  
-- [email protected],代表没有待处理的消息,否则就代表本次需要处理的msg_id  
 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<