Computer >> Máy Tính >  >> Lập trình >> MySQL

Khi lỗi dấu phân tách MySQL xảy ra?

Dấu phân tách MySQL xảy ra khi bạn đang sử dụng dấu phân cách ống (|) với dấu chấm phẩy (;) và sử dụng phiên bản MySQL thấp hơn 8.0.12.

MySQL xử lý đường ống (|) là một dấu phân cách và dấu chấm phẩy (;) là một dấu phân cách khác. Do đó, đừng nhầm lẫn giữa dấu phân tách MySQL với đường ống cũng như dấu chấm phẩy.

Lưu ý :Ở đây, chúng tôi đang sử dụng MySQL phiên bản 8.0.12. Dấu phân cách đường ống hoạt động tốt với dấu chấm phẩy. Nếu bạn đang sử dụng phiên bản thấp hơn 8.0.12, thì điều này dẫn đến lỗi dấu phân cách.

Đây là hoạt động của dấu phân tách MySQL:

mysql> delimiter |;
mysql> create procedure getSumOfTwoNumbers()
   -> begin
   -> select 2+3 as TotalValue;
   -> end ;
   -> |;
Query OK, 0 rows affected (0.17 sec)
mysql> delimiter ;

Bây giờ hãy gọi thủ tục đã lưu trữ bằng lệnh gọi. Truy vấn như sau:

mysql> call getSumOfTwoNumbers();

Sau đây là kết quả:

+------------+
| TotalValue |
+------------+
|          5 |
+------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

Không đạt được dấu phân cách đường ống ở trên bằng dấu chấm phẩy vì trong MySQL dấu chấm phẩy là dấu phân cách mặc định cho biết kết thúc câu lệnh trong MySQL. Do đó, dấu chấm phẩy có thể được sử dụng để lấy lại từ thủ tục được lưu trữ trong MySQL khi bạn đang viết nhiều câu lệnh.

Đây là ví dụ về thay đổi dấu phân cách.

Đầu tiên, sử dụng dấu phân cách ống (|). Nếu bạn muốn đặt dấu phân cách thành ống dẫn, hãy sử dụng truy vấn sau.

mysql> DELIMITER |

Truy vấn để tạo một thủ tục được lưu trữ như sau:

mysql> DELIMITER |
mysql> create procedure Demo()
   -> begin
   -> select 2*3 as TotalMultiplication;
   -> end ;
   -> |
Query OK, 0 rows affected (0.12 sec)

Bây giờ thay đổi dấu phân cách bằng dấu chấm phẩy. Nếu bạn muốn đặt dấu phân cách thành dấu chấm phẩy, hãy sử dụng truy vấn sau.

Truy vấn như sau:

mysql> delimiter ;