Mysql 创建触发器时出现错误1064
我使用的是MYSQL 5.6和phpMyAdmin 4.1.14 我试图创建一个触发器,将数据从一个db复制到另一个db,但出现以下错误: #1064-您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第7行“new.framework\u id,new.user\u id,new.icao24,new.created\u at,new.timestamp,new.althip”附近使用的正确语法 任何指点都将不胜感激 我的代码是:Mysql 创建触发器时出现错误1064,mysql,triggers,phpmyadmin,Mysql,Triggers,Phpmyadmin,我使用的是MYSQL 5.6和phpMyAdmin 4.1.14 我试图创建一个触发器,将数据从一个db复制到另一个db,但出现以下错误: #1064-您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以了解第7行“new.framework\u id,new.user\u id,new.icao24,new.created\u at,new.timestamp,new.althip”附近使用的正确语法 任何指点都将不胜感激 我的代码是: CREATE TRIGGER airfiel
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;
创建触发机场\u插入
插入前
论实时
每行
开始
如果(new.squawk介于6160和6167之间或new.squawk介于6171和6177之间)和new.altitude您在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;
另外,如果在insert查询中出现语法错误,则在END之后缺少END
关键字
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,........);
表单没有指定插入数据的列名,只指定它们的值:除了值
关键字之外,您还缺少结束
,您的答案非常需要分隔符。不幸的是,这不是我想要的。一旦生效,触发器将停止进入原始表的任何其他内容(实时)。我想我必须重新考虑整件事。也许触发因素不是我想要实现的目标所需要的。