MYSQL CONSOLE 中的触发器

Posted

技术标签:

【中文标题】MYSQL CONSOLE 中的触发器【英文标题】:trigger in MYSQL CONSOLE 【发布时间】:2013-03-07 17:53:55 【问题描述】:

我正在处理phpmyadmin。 要编写触发器,我使用的是mysql console。 它在启动时效果很好。但是一旦我写了一个触发器并且它被成功执行,那么每次在任何查询之后我都必须给delimiter(|)来执行查询。 我无法理解为什么我必须在简单的选择查询之后放置分隔符?分隔符用于触发仪式。 我在写触发器时遗漏了什么吗? 例如:

在触发后,我正在编写选择语句而不是我必须将其编写为:

select * from tableName;|

如果我不使用|,它不会被执行。

【问题讨论】:

【参考方案1】:

试试这个:

DELIMITER $$

DROP TRIGGER IF EXISTS `myTriggerName`$$

CREATE TRIGGER `myTriggerName` AFTER DELETE ON `myTableName` FOR EACH ROW BEGIN

...........
............
.............

END$$
DELIMITER ;

【讨论】:

【参考方案2】:

触发器创建后,需要将分隔符改回';'

参见手册中的示例:

http://dev.mysql.com/doc/refman/5.6/en/stored-programs-defining.html

delimiter //

... your trigger here ...

delimiter ; <-- change the delimiter back

【讨论】:

以上是关于MYSQL CONSOLE 中的触发器的主要内容,如果未能解决你的问题,请参考以下文章

( 17 )MySQL中的触发器

MySQL中的触发器语句错误

mysql触发器中的语法错误

mysql中的触发器

mysql中的触发器出现错误

mysql中的“代替”触发器