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.