在mysql中创建触发器时我得到错误1046.我的查询是:
CREATE TABLE test.Employee(
id int,
first_name VARCHAR(30),
last_name VARCHAR(15),
start_date DATE,
end_date DATE,
city VARCHAR(10),
description VARCHAR(15)
);
CREATE TABLE test.Employee_log(
id int,
first_name varchar(50),
last_name varchar(50),
start_date date,
end_date date,
city varchar(50),
description varchar(50),
Lasinserted Time
);
Run Code Online (Sandbox Code Playgroud)
当我在线下执行时它会给出错误:
Error Code : 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 'END$$
delimiter' at line 1
(16 ms taken)
delimiter $$
CREATE …Run Code Online (Sandbox Code Playgroud) 我从http://forge.mysql.com/wiki/Triggers学习触发器 ,我有:
create trigger bi_emps_fer before insert on emps for each row
begin
declare newsal numeric default 0;
declare namelength, l_loop int default 0;
set namelength = length(new.emp_name);
while l_loop < namelength do
set newsal := newsal new.salary;
set l_loop := l_loop 1;
end while;
set new.salary = newsal;
end
Run Code Online (Sandbox Code Playgroud)
和错误:
1064 - 您的SQL语法出错; 检查与MySQL服务器版本对应的手册,以便在第4行的''附近使用正确的语法
为什么?我使用MySQL 5.5.8和phpmyadmin 3.3.9