我做了这样的触发器:
create trigger mytrigger
before
insert on
person4
for each row
begin
if new.salary < 5000 then
set new.salary = 6000;
end if;
end;
这里的工资是表 person4 的一个属性,我正在为此创建一个触发器。但是,它显示错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 8 行 '' 附近使用的正确语法
为什么会发生这种情况?语法完全正确。那么为什么会发生这种情况呢?
最佳答案
触发器看起来不错,唯一缺少的是分隔符。
我刚刚创建了一个带有示例表的触发器,如下
delimiter //
create trigger mytrigger before insert on person4
for each row
begin
if new.salary < 5000 then
set new.salary = 6000;
end if;
end;//
delimiter;
这里是mysql测试
mysql> create table person4(id int, name varchar(20),salary int);
Query OK, 0 rows affected (0.16 sec)
mysql> insert into person4 values (1,'aa',6000);
Query OK, 1 row affected (0.06 sec)
mysql> select * from person4;
+------+------+--------+
| id | name | salary |
+------+------+--------+
| 1 | aa | 6000 |
+------+------+--------+
1 row in set (0.01 sec)
mysql> insert into person4 values (1,'bb','3000');
Query OK, 1 row affected (0.04 sec)
mysql> select * from person4;
+------+------+--------+
| id | name | salary |
+------+------+--------+
| 1 | aa | 6000 |
| 1 | bb | 6000 |
+------+------+--------+
2 rows in set (0.00 sec)
关于mysql - 在这方面制作触发器有什么错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256198/