【问题标题】:Mysql sql error #1064mysql sql错误#1064
【发布时间】:2012-09-10 08:44:39
【问题描述】:

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

我的代码:

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

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:
    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')
    );
    

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

    【讨论】:

      猜你喜欢
      • 2014-02-20
      • 1970-01-01
      • 2011-02-11
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      相关资源
      最近更新 更多