为什么SQLYog创建MySQL存储过程时会更改定界符?
|
当我使用SQLYog进行存储过程时,它会提供以下模板:
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `apachelogs`.`test`()
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT \'string\'*/
BEGIN
END$$
DELIMITER ;
我不知道为什么在创建存储过程之前更改定界符。以及为什么我仍然可以在create
语句中使用;
分隔符(我想可能是因为范围)。
没有找到相关结果
已邀请:
1 个回复
贡炮逗握惫
命令。以下示例显示了如何针对刚刚显示的“ 7”过程执行此操作。定界符更改为“ 8”,以使整个定义可以作为单个语句传递到服务器,然后在调用该过程之前恢复为“ 1”。这使得过程主体中使用的“ 1”定界符可以传递到服务器,而不是由mysql本身解释。 我不知道我的解释是否比手册更清晰,但也许其中之一(或两者结合)会带来一些理解。