CREATE TRIGGER changeinsert BEFORE INSERT ON cdr
FOR EACH ROW
BEGIN
IF NEW.dstchannel != '' THEN
IF ((not exists(select id from asterisk.devices where concat(id)=NEW.dst)) and (not exists(select id from asterisk.users where extension=NEW.dst))) THEN
SET NEW.servicenum = 'out';
ELSE
SET NEW.servicenum = 'in';
END IF;
END IF;
END
执行之后:
MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6 有谁知道我哪出语法错误了?servicenum字段 是varchar(30)类型
FOR EACH ROW
BEGIN
IF NEW.dstchannel != '' THEN
IF ((not exists(select id from asterisk.devices where concat(id)=NEW.dst)) and (not exists(select id from asterisk.users where extension=NEW.dst))) THEN
SET NEW.servicenum = 'out';
ELSE
SET NEW.servicenum = 'in';
END IF;
END IF;
END
执行之后:
MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6 有谁知道我哪出语法错误了?servicenum字段 是varchar(30)类型
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`uniqueid` varchar(32) NOT NULL default '',
`userfield` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
你更改下,改用通过中间变量方式进行判断