2013-03-24 51 views
-2

我试图将以下sql命令上传到php myadmin。但是,我有一些有趣的错误。我试图解决它,但即使我仔细考虑,我也找不到错误发生的原因。php myadmin sql 1064触发器错误

错误:

MySQL said: Documentation 
#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 'ON car_model 
FOR INSERT 
AS 
    declare @car_name VARCHAR(255)' at line 2 

SQL:

CREATE TRIGGER TRG_Update 
ON car_model 
FOR INSERT 
AS 
     DECLARE @car_name VARCHAR(255); 
     DECLARE @manufacturer_year VARCHAR(255); 
     DECLARE @car_type VARCHAR(255); 

     SELECT @car_name = i.car_name FROM inserted i; 
     SELECT @manufacturer_year = i.manufacturer_year FROM inserted i; 
     SELECT @car_type = i.car_type FROM inserted i; 

     INSERT INTO features 
       (car_name, manufacturer_year, car_type) 
     VALUES (@car_name, @manufacturer_year, @car_type); 
GO 

回答

1

您正在使用SQL Server Trigger语法。下面是MySQL

DELIMITER $$ 
CREATE TRIGGER TRG_Update 
AFTER INSERT ON car_model 
FOR EACH ROW 
BEGIN 
     INSERT INTO features (car_name, manufacturer_year, car_type) 
     VALUES (NEW.car_name, NEW.manufacturer_year, NEW.car_type); 
END $$ 
DELIMITER ; 
+0

你能完全写完整的代码校正?我已经做了你写的东西,但仍然是同样的错误。 – demilg 2013-03-24 11:10:06

+0

这就是整个代码,你不需要声明任何变量。什么是完整的错误信息生成? – 2013-03-24 11:11:23

+0

它说你没有权限做这份工作。这是什么,我怎样才能解决它在PHP myadmin? – demilg 2013-03-24 11:26:07