单插入查询连续执行在mysql存储过程中

时间:2013-03-30 16:07:40

标签: mysql sql stored-procedures

我是mysql存储过程的新手。我在下面的代码中遇到问题,前两个插入查询连续执行,并在单次触发时插入数据到2100。 需要一些帮助。

use database;
DELIMITER $$

CREATE PROCEDURE writer(
    IN timegenerated DATETIME,
    IN timereported DATETIME,
    IN syslogfacility smallint(6),
    IN syslogpriority smallint(6),
    IN HOSTNAME VARCHAR(255),
    IN tag VARCHAR(255),
    IN msg2 VARCHAR(255),
    IN msg3 VARCHAR(255),
    IN msg4 INT(11),
    IN msg5 VARCHAR(255),
    IN msg6 VARCHAR(255),
    IN msg7 VARCHAR(255), 
    IN msg8 VARCHAR(255),
    IN msg9 VARCHAR(255),
    IN msg10 VARCHAR(255),
    IN msg11 VARCHAR(255),
    IN msg12 VARCHAR(255),
    IN msg13 VARCHAR(255),
    IN msg14 VARCHAR(255),
    IN msg15 VARCHAR(255),
    IN msg16 VARCHAR(255),
    IN msg17 VARCHAR(255),
    IN msg18 VARCHAR(255))
BEGIN
    INSERT INTO `RAW_DATA` VALUES
      ( '','',timegenerated,timereported,
        syslogfacility,syslogpriority,HOSTNAME,tag,
        msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,
        @site_name,msg11,msg12,msg13,msg14,
        msg15,msg16,msg17,msg18,''
      );

    INSERT INTO `SORTED_DATA` values(msg10,msg7,100)
      on duplicate key update hits=hits+1;  

    IF (msg14=0) THEN 
      INSERT INTO `UNCATEGORIZED_DATA`(`col1`, `col2`) VALUES (msg10,24);   
    ELSE            
      INSERT INTO `CATEGORIZED_DATA`(`col1`, `col2`) VALUES (msg10,25);
    END IF;         

END$$
DELIMITER ; 

尝试分离数据并将其存储在不同的表中。

0 个答案:

没有答案