[英]MySQL Trigger Syntax Error #1064
I am trying to implement a trigger in MySQL
that will automatically add/modify a column when another one is added/modified. 我正在尝试在
MySQL
中实现一个触发器,该触发器将在添加/修改另一列时自动添加/修改一列。 Basically I want it to save a type
as a slug in the type_sanitized
column when a value is added/modified into type
. 基本上我希望它保存一个
type
为蛞蝓在type_sanitized
列时被添加/修改成一个值type
。
This is my initial try: 这是我最初的尝试:
DROP TRIGGER IF EXISTS ArticleTypes.insert_sanitized_article_type;
CREATE TRIGGER 'insert_sanitized_article_type'
AFTER INSERT
ON 'ArticleTypes'
FOR EACH ROW
SET NEW.type_sanitized = LOWER(REPLACE(TRIM(NEW.type), ' ', '-'));
DROP TRIGGER IF EXISTS ArticleTypes.update_sanitized_article_type;
CREATE TRIGGER 'update_sanitized_article_type'
AFTER UPDATE
ON 'ArticleTypes'
FOR EACH ROW
SET NEW.type_sanitized = LOWER(REPLACE(TRIM(NEW.type), ' ', '-'));
After seeing suggestions online, I have tried adding delimiters like this: 在网上看到建议后,我尝试添加如下定界符:
DROP TRIGGER IF EXISTS ArticleTypes.insert_sanitized_article_type;
DELIMITER $$
CREATE TRIGGER 'insert_sanitized_article_type'
AFTER INSERT
ON 'ArticleTypes'
FOR EACH ROW
BEGIN
SET NEW.type_sanitized = LOWER(REPLACE(TRIM(NEW.type), ' ', '-'));
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS ArticleTypes.update_sanitized_article_type;
DELIMITER $$
CREATE TRIGGER 'update_sanitized_article_type'
AFTER UPDATE
ON 'ArticleTypes'
FOR EACH ROW
BEGIN
SET NEW.type_sanitized = LOWER(REPLACE(TRIM(NEW.type), ' ', '-'));
END$$
DELIMITER ;
I get the following error for both of them: 我对他们两个都收到以下错误:
#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 ''insert_sanitized_article_title'
AFTER INSERT
ON 'ArticleTypes'
FOR EACH ROW
BE' at line 1
This is my first time creating triggers in MySQL so it might be obvious but I haven't been able to figure it out in 2 hours of searching so any help would be greatly appreciated. 这是我第一次在MySQL中创建触发器,因此这很明显,但我无法在2小时的搜索中弄清触发器,因此将不胜感激。
Remove the apostrophes. 删除撇号。
DROP TRIGGER IF EXISTS ArticleTypes.insert_sanitized_article_type; DELIMITER $$ CREATE TRIGGER insert_sanitized_article_type AFTER INSERT ON ArticleTypes FOR EACH ROW BEGIN SET @type_sanitized = LOWER(REPLACE(TRIM(@type), ' ', '-')); END$$ DELIMITER ; DROP TRIGGER IF EXISTS ArticleTypes.update_sanitized_article_type; DELIMITER $$ CREATE TRIGGER update_sanitized_article_type AFTER UPDATE ON ArticleTypes FOR EACH ROW BEGIN SET @type_sanitized = LOWER(REPLACE(TRIM(@type), ' ', '-')); END$$ DELIMITER ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.