Mysql 向触发器添加注释(说明)
如果我在MySQL中使用Mysql 向触发器添加注释(说明),mysql,triggers,Mysql,Triggers,如果我在MySQL中使用create trigger语法创建一个触发器,我如何向它附加一个描述它的注释?我的意思是在声明中或之后,对我来说都是一样的 我想不出来。对于您添加的表,COMMENT='Wonder table With users inside'在声明的末尾。但是如何向触发器添加注释呢?作为一种解决方法,您可以在触发器的主体中写入注释文本,例如- CREATE TRIGGER trigger1 AFTER INSERT ON table1 FOR EACH ROW BEGIN -
create trigger
语法创建一个触发器,我如何向它附加一个描述它的注释?我的意思是在声明中或之后,对我来说都是一样的
我想不出来。对于您添加的表,
COMMENT='Wonder table With users inside'代码>在声明的末尾。但是如何向触发器添加注释呢?作为一种解决方法,您可以在触发器的主体中写入注释文本,例如-
CREATE TRIGGER trigger1
AFTER INSERT
ON table1
FOR EACH ROW
BEGIN
-- 'Wonderful trigger with insert inside';
INSERT INTO table2 VALUES(NEW.id);
END
不能将注释附加到触发器
但是,您可以在触发器主体中添加注释
如果在正文中键入注释,如/**comment**/
您可以通过以下查询提取这些注释:
SELECT
SUBSTRING(b.body, b.start, (b.eind - b.start)) as comment
FROM (
SELECT
a.body
,locate('/**',a.body) as start
,locate('**/',a.body) as eind
FROM (
SELECT t.ACTION_STATEMENT as body FROM information_schema.triggers t
WHERE t.TRIGGER_NAME like %aname%
) a
) b
您可以这样在mysql触发器中放置注释-
CREATE TRIGGER trigger1
AFTER INSERT
ON table1
FOR EACH ROW
BEGIN
/*!99999 This is my comment , i will ignore at run time. */
INSERT INTO table2 VALUES(NEW.id);
END
为了防止“代码”被执行,您可以使用非常高的版本号,例如99999。您也可以使用
#“你的评论”
它的工作原理似乎与/“你的评论”
在其他语言中,例如:C、C++、PHP等触发器没有这个选项。谢谢@ Dominik,但我认为这没有什么区别,因为MySQL没有与触发器相关的注释信息。没有问题。您的意思是没有将注释保存到MySQL注释的选项?是的,对于表,您可以向其元数据添加注释,但对于触发器,它不受支持。幸运的是,我使用的是MySQL workbench,我在触发器中的注释已在数据库之间成功传输,它们存在于触发器代码中:)