创建触发器时出现错误1064

时间:2015-07-13 09:40:48

标签: mysql triggers phpmyadmin

我正在使用MYSQL 5.6和phpMyAdmin 4.1.14

我正在尝试创建一个将数据从一个数据库复制到另一个数据库的触发器,但会出现以下错误:

#1064 - 您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在第7行的'new.airplane_id,new.user_id,new.icao24,new.created_at,new.timestamp,new.altitude'附近使用正确的语法 < / p>

任何指针都会感激不尽

我的代码是:

CREATE TRIGGER airfields_insert 
BEFORE INSERT 
ON realtime 
FOR EACH ROW
BEGIN
if (new.squawk between 6160 and 6167 or new.squawk between 6171 and 6177) and new.altitude <= 4000 then 
insert into airfields (airplane_id,user_id,icao24,created_at,timestamp,altitude,flight_number,latitude,longitude,heading,squawk,horizontal_speed,vertical_speed,Interested) (new.airplane_id,new.user_id,new.icao24,new.created_at,new.timestamp,new.altitude,new.flight_number,new.latitude,new.longitude,new.heading,new.squawk,new.horizontal_speed,new.vertical_speed,new.Interested);
end if;

2 个答案:

答案 0 :(得分:2)

插入查询中有语法错误您的QUERY应该是那样的

insert into airfields (airplane_id,user_id,icao24,.......) 
values (new.airplane_id,new.user_id,new.icao24,........);

或只是

 insert into airfields values (new.airplane_id,new.user_id,new.icao24,........);

表单不指定插入数据的列名,只指定其值:

答案 1 :(得分:0)

您遗漏了VALUES声明中的INSERT关键字

您当前的INSERT查询

insert into airfields (airplane_id,user_id,icao24,.......) 
(new.airplane_id,new.user_id,new.icao24,........);
end if;

应该是

insert into airfields (airplane_id,user_id,icao24,.......) 
values (new.airplane_id,new.user_id,new.icao24,........);
end if;

此外,您在END

之后缺少END IF关键字