0

检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法:'SELECT count(*) FROM capacity WHERE server=NEW.server AND feed'在第 2 行

我的代码:

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
4

1 回答 1

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')
);

您必须()在查询周围添加括号。

于 2012-09-10T08:47:57.043 回答