mysql - 在这方面制作触发器有什么错误?

标签 mysql phpmyadmin

我做了这样的触发器:

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/

相关文章:

mysql - 逐字分割mysql列

java - 使用 php 和 JSON 将 android 连接到 mySQL

php - 如何将查询结果分配给 Opencart/PHP 中的变量?

mysql - 用户 'myUser' @'localhost' 的访问被拒绝(使用密码 : YES)

mysql - 如何在没有值的字段上使用 MYSQL WHERE

php - 如何从具有字段和许多输入值的表中获取行以检查字段?

MySQL 和 Perl 驱动程序问题 - DBD::mysql: load_file: 找不到指定的模块

php - joomla - 在一个模型中运行多个查询

php - 检索上个月的所有行(Laravel + Eloquent)

mysql - 替换 HTTP ://to HTTPS://in WordPress