我正在尝试在phpMyAdmin中创建一个触发器,我可以根据字段名称修改字段的值。我正在使用这种语法
CREATE TRIGGER lawyers AFTER INSERT ON wp_posts
FOR EACH ROW
BEGIN
UPDATE wp_posts SET post_content = '<!--:en--> <!--:--><!--:ES--> <!--:-->'
WHERE ID = NEW.ID AND post_type = 'lawyers';
END
但我无法使其发挥作用,它说:
#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 '' at line 4
你能帮帮我吗?
答案 0 :(得分:2)
无论如何,你无法编写这样的触发器,更新你要插入的同一个表。当我测试你的触发器时,我得到了这个:
ERROR 1442 (HY000): Can't update table 'wp_posts' in stored function/trigger
because it is already used by statement which invoked this stored
function/trigger.
以下内容与触发器的作用相同:
CREATE TRIGGER lawyers BEFORE INSERT ON wp_posts
FOR EACH ROW
BEGIN
IF (NEW.post_type = 'lawyers') THEN
SET NEW.post_content = '<!--:en--> <!--:--><!--:ES--> <!--:-->';
END IF;
END
答案:如果您使用CREATE TRIGGER或CREATE PROCEDURE,phpMyAdmin需要特殊模式。
在SQL查询框下方,有一个标有分隔符的小表单字段。将其设置为$$
。
输入您的CREATE TRIGGER语句,并在最后$$
后使用END
终止该语句。
点击转到按钮。
请参阅http://wiki.phpmyadmin.net/pma/Trigger
这类似于在mysql命令行客户端中使用DELIMITER
built-in command。