使用变量触发 phpMyAdmin
Posted
技术标签:
【中文标题】使用变量触发 phpMyAdmin【英文标题】:Trigger phpMyAdmin using variables 【发布时间】:2013-08-01 09:14:40 【问题描述】:我正在尝试在 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
你能帮帮我吗?
【问题讨论】:
【参考方案1】:无论如何,您都不能编写这样的触发器,更新您要插入的同一个表。当我测试你的触发器时,我得到了这个:
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 查询框下方,有一个标记为 Delimiter 的小表单字段。将此设置为$$
。
输入您的 CREATE TRIGGER 语句并在最后一个 END
之后以 $$
终止它。
点击开始按钮。
见http://wiki.phpmyadmin.net/pma/Trigger
这类似于在 mysql 命令行客户端中使用DELIMITER
built-in command。
【讨论】:
您好,感谢您的回答。我已经尝试过您的查询,但我不断收到相同的错误:#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 5
。您认为这是服务器问题吗?
您使用的是什么版本的 MySQL?试试SELECT VERSION();
以上是关于使用变量触发 phpMyAdmin的主要内容,如果未能解决你的问题,请参考以下文章