当您使用带分号 (;) 的管道分隔符 (|) 且使用低于 8.0.12 的 MySQL 版本时,会出现 MySQL 分隔符。
MySQL 将管道 (|) 视为一个分隔符,并且分号 (;) 是另一个分隔符。因此,不要将MySQL分隔符与管道和分号混淆。
注意:这里,我们使用MySQL版本8.0.12。管道分隔符与分号配合得很好。如果您使用的版本低于 8.0.12,则会导致分隔符错误。
以下是 MySQL 分隔符的工作原理:
mysql> delimiter |;
mysql> create procedure getSumOfTwoNumbers()
-> begin
-> select 2+3 as TotalValue;
-> end ;
-> |;
Query OK, 0 rows affected (0.17 sec)
mysql> delimiter ;
登录后复制
现在使用 call 命令调用存储过程。查询如下:
mysql> call getSumOfTwoNumbers();
登录后复制
以下是输出:
+------------+
| TotalValue |
+------------+
| 5 |
+------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
登录后复制
不要用分号实现上述管道分隔符,因为在 MySQL 中分号是默认分隔符,它告诉 MySQL 中语句的结束。因此,当您编写多条语句时,可以使用分号从MySQL存储过程中返回。
这里是分隔符更改的示例。
首先,使用管道分隔符(|)。如果要将分隔符设置为管道,请使用以下查询。
mysql> DELIMITER |
登录后复制
创建存储过程的查询如下:
mysql> DELIMITER |
mysql> create procedure Demo()
-> begin
-> select 2*3 as TotalMultiplication;
-> end ;
-> |
Query OK, 0 rows affected (0.12 sec)
登录后复制
现在用分号更改分隔符。如果要将分隔符设置为分号,请使用以下查询。
查询如下:
mysql> delimiter ;
登录后复制
以上就是MySQL分隔符错误是什么时候发生的?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!