在编写MySQL的存储过程的时候,遇到了这么个问题:当存储过程内容有多句,需要用begin...end的时候,只要其中出现了分隔符就会在分隔符的位置报告如下错误:
百思不得其解,查了手册和教程也无头绪。
某天无意中发现,只要把分隔符改为除了“;”以外的,然后在存储过程里用“;”隔开语句就行了,也就是说应该这样写:
回头看MySQL的手册,才发现我理解错了一句话。原文写道:
Use of multiple statements requires that a client is able to send statement strings containing the
;
statement delimiter. This is handled in the mysql command-line client with thedelimiter
command. Changing the;
end-of-statement delimiter (for example, to//
) allows;
to be used in a routine body.
意思是说语句体内的语句必须用“;”作为分隔符,但是这会与mysql的命令行分隔符冲突,所以要把命令行分隔符改为其他的。看的时候竟然看囧了……