我无法定义MySQL数据库的触发器.我想在插入新行之前更改文本字段(在给定条件下).这是我尝试过的:
CREATE TRIGGER add_bcc
BEFORE INSERT ON MailQueue
FOR EACH ROW BEGIN
IF (NEW.sHeaders LIKE "%support@mydomain.com%") THEN
SET NEW.sHeaders = NEW.sHeaders + "BCC:internal@mydomain.com";
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
但总是我得到错误"错误的语法".我卡住了,我做错了什么?我正在使用MySQL 5.0.51a-community
顺便说一句:创建一个像这样的空触发器工作正常:
CREATE TRIGGER add_bcc
BEFORE INSERT ON MailQueue
FOR EACH ROW BEGIN
END;
Run Code Online (Sandbox Code Playgroud)
但这也失败了:
CREATE TRIGGER add_bcc
BEFORE INSERT ON MailQueue
FOR EACH ROW BEGIN
IF 1=1 THEN
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
这是我第一次使用stackoverflow.com,所以如果在这里发布内容有帮助我会非常兴奋:-)
在名为jos_jquarks_quizzes的表上插入后需要触发,我需要创建一个与quizz名称相同的课程名称,但是它自己的id,
表
jos_jquarks_quizzes
id title description course_id
jos_jquarks_users_training
id quiz_id user_id agree
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的触发器看起来像这样,但有一个错误
-- Trigger DDL Statements
DELIMITER $$
USE `db_dhruniversity`$$
CREATE
TRIGGER `db_dhruniversity`.`ai_delete_course`
AFTER DELETE ON `jos_jquarks_quizzes`
FOR EACH ROW
BEGIN
DELETE FROM jos_jquarks_courses
WHERE (quiz_id = new.id);
END$$
Run Code Online (Sandbox Code Playgroud)