【发布时间】:2020-08-29 22:33:06
【问题描述】:
我必须在Mysql中使用delimiter来创建一个过程吗?
【问题讨论】:
-
这能回答你的问题吗? Delimiters in MySQL
-
没有。有一些简单的存储过程可以在没有分隔符的情况下编写。但是,最好养成始终使用分隔符的习惯。
标签: mysql sql stored-procedures
我必须在Mysql中使用delimiter来创建一个过程吗?
【问题讨论】:
标签: mysql sql stored-procedures
是的,在查询选项卡或 mysqlclient 中,您需要它们,如 here 所述
问题是分号是命令的结尾,但在存储过程中所有分号都是存储过程的prt。
当他必须解释时,Mysql 现在必须通过更改 DELIMITER 来将分号作为过程的一部分
【讨论】:
是的,您必须 - 除非您的程序由单个语句组成。这是well explained in the documentation:
每个存储的程序都包含一个由 SQL 语句组成的主体。此语句可能是由分号 (
;) 字符分隔的多个语句组成的复合语句。[...]
如果使用mysql客户端程序定义包含分号字符的存储程序,就会出现问题。默认情况下,mysql本身将分号识别为语句分隔符,因此必须临时重新定义分隔符,以使mysql将整个存储的程序定义传递给服务器。
要重新定义 mysql 分隔符,请使用
delimiter命令。 [...] 这使得过程主体中使用的;分隔符能够传递到服务器,而不是由 mysql 本身解释。
【讨论】: