2012-09-10 74 views
0

检查对应于您的MySQL服务器版本正确的语法附近使用手册:'SELECT count(*) FROM capacity WHERE server=NEW.server AND feed'第2行mysql的SQL错误#1064

我的代码:

DROP TRIGGER IF EXISTS newsmonitoringrawdata.TNTInsertionTrigger; 

CREATE TRIGGER TgtInsertionTrigger BEFORE INSERT ON tnews 
    FOR EACH ROW BEGIN 
SET @isRecordCreated = 
SELECT count(*) FROM capacity 
WHERE 
server=NEW.server 
AND 
feed=NEW.Feed 
AND 
date_Format(streamdt,'%Y-%m-%d %H:%i')=date_Format(NEW.StreamDT,'%Y-%m-%d %H:%i'); 

IF @isRecordCreated>0 THEN 
    UPDATE capacity 
    SET MsgNumber=MsgNumber+1, 
    size=size+NEW.MSize 
    WHERE 
    server=NEW.server 
    AND 
    feed=NEW.feed 
    and 
    date_Format(streamdt,'%Y-%m-%d %H:%i')=date_Format(NEW.StreamDT,'%Y-%m-%d %H:%i'); 
ELSE 
    INSERT INTO capacity(server, feed, streamdt, msgNumber, size) 
    VALUES 
    (
     NEW.server, 
     NEW.feed, 
     date_Format(NEW.StreamDT,'%Y-%m-%d %H:%i:00'), 
     1, 
     NEW.size 
    ); 
END IF; 

END 

回答

0
SET @isRecordCreated = (
SELECT count(*) FROM capacity 
WHERE 
server=NEW.server 
AND 
feed=NEW.Feed 
AND 
date_Format(streamdt,'%Y-%m-%d %H:%i')=date_Format(NEW.StreamDT,'%Y-%m-%d %H:%i') 
); 

您必须在查询周围添加禁忌物()