好吧,我已经看到了很多类似的问题,但在爬答案不能让我自由触发错误!
结果,我需要的是:每当一个新值插入到数据库表temp_pool
,它触发,如果新的地址不等于与同以前的地址值dev_id
为这个NEW.dev_id
插入到位置表的新值。
下面是该查询(样品):
CREATE TRIGGER filter
after insert on geo.temp_pool
for each row
BEGIN
DECLARE OLD_ADDR VARCHAR(2048);
OLD_AADR = select address from temp_pool where dev_id like NEW.dev_id
order by date desc, time desc limit 1;
IF (OLD_ADDR != NEW.address) THEN
INSERT INTO a3380361_geo.location
VALUES (NEW.dev_id,NEW.address,NEW.lat,NEW.lng,NEW.date,NEW.time);
END IF;
END
$$
我使用phpMyAdmin的编辑器,并设置分隔符$$
。
我正的错误是:
1064 - 您的SQL语法错误; 检查对应于你的MySQL服务器版本使用来自temp_pool附近“=选择地址正确的语法手册,其中1个ORDER BY日期递减,时间倒序限制1; '在列5
我坚信,有一些问题,从分配值SELECT
到变量[ OLD_ADDR
],那么有没有什么办法可以解决我的问题?
逻辑很简单,要求是可以理解的从查询,对不对?
打开所有的意见和建议。