MySQL 分隔符错误何时发生?


当您使用管道分隔符 (|) 和分号 (;),并且使用低于 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 ;

更新于:2019年7月30日

浏览量 1K+

启动您的 职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.