简体   繁体   English

在mysql中插入触发器后

[英]After insert trigger in mysql

I am trying to write a trigger in mysql that runs after insert in table. 我正在尝试在mysql中编写一个触发器,该触发器在插入表后运行。 After insert it takes a value from a column attrValue where attrType equals 'datetime' and updates another column called attrMd. 插入后,它从attrValue列获取一个值,其中attrType等于“ datetime”,并更新另一个称为attrMd的列。

This is my try for now but it keeps saying I have a syntax value in line 4: 这是我目前的尝试,但一直说我在第4行有一个语法值:

1064 - You have an error in your SQL syntax; 1064-您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4 检查与您的MySQL服务器版本相对应的手册以获取在第4行的''附近使用的正确语法

I can't figure it out. 我不知道。 Any help is much appreciated. 任何帮助深表感谢。 Thanks... 谢谢...

CREATE TRIGGER upd_check BEFORE INSERT ON def_servpath_0001_weatherstation
FOR EACH ROW
BEGIN
 DECLARE someString text;
 FOR EACH ROW
 BEGIN
     IF NEW.atrType = 'datetime' THEN
         SET @someString := NEW.atrValue;
     END IF;
 END;

 FOR EACH ROW
 BEGIN
     IF NEW.atrType <> 'datetime' THEN
         SET NEW.atrMD = someString;
     END IF;
 END;
END;//

Edit 编辑 图片

Some points to consider: 需要考虑的几点:

CREATE TRIGGER upd_check BEFORE INSERT ON def_servpath_0001_weatherstation
FOR EACH ROW
BEGIN
 DECLARE someString text;
 -- FOR EACH ROW
 BEGIN
     IF NEW.atrType = 'datetime' THEN
         SET @someString := NEW.atrValue;
     END IF;
 END;

 -- FOR EACH ROW
 BEGIN
     IF NEW.atrType <> 'datetime' THEN
         SET NEW.atrMD = someString;
     END IF;
 END;
END;//

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM