Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เมื่อข้อผิดพลาดตัวคั่น MySQL เกิดขึ้น?


ตัวคั่น MySQL เกิดขึ้นเมื่อคุณใช้ตัวคั่นไพพ์ (|) กับเครื่องหมายอัฒภาค (;) และใช้ MySQL เวอร์ชันต่ำกว่า 8.0.12

MySQL ถือว่าไพพ์ (|) เป็นตัวคั่นหนึ่งตัวและเครื่องหมายอัฒภาค (;) เป็นตัวคั่นอีกตัวหนึ่ง ดังนั้น อย่าสับสนระหว่างตัวคั่น MySQL กับไพพ์และอัฒภาค

หมายเหตุ :ที่นี่ เราใช้ MySQL เวอร์ชัน 8.0.12 ตัวคั่นท่อทำงานได้ดีกับเครื่องหมายอัฒภาค หากคุณใช้เวอร์ชันที่ต่ำกว่า 8.0.12 จะทำให้เกิดข้อผิดพลาดเกี่ยวกับตัวคั่น

นี่คือการทำงานของตัวคั่น MySQL:

mysql> ตัวคั่น |;mysql> สร้างโพรซีเดอร์ getSumOfTwoNumbers() -> เริ่ม -> เลือก 2+3 เป็น TotalValue; -> จบ; -> |;ตกลง 0 แถวได้รับผลกระทบ (0.17 วินาที) mysql> ตัวคั่น;

ตอนนี้เรียกกระบวนงานที่เก็บไว้โดยใช้คำสั่งโทร แบบสอบถามมีดังนี้:

mysql> โทร getSumOfTwoNumbers();

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-----------+| มูลค่ารวม |+-----------+| 5 |+------------+1 แถวในชุด (0.00 วินาที) แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.01 วินาที)

อย่าบรรลุตัวคั่นไพพ์ด้านบนด้วยเซมิโคลอนเพราะในเซมิโคลอนของ MySQL เป็นตัวคั่นเริ่มต้นซึ่งบอกจุดสิ้นสุดของคำสั่งใน MySQL ดังนั้น อัฒภาคสามารถใช้เพื่อกลับจากกระบวนงานที่เก็บไว้ของ MySQL เมื่อคุณเขียนหลายคำสั่ง

นี่คือตัวอย่างการเปลี่ยนแปลงตัวคั่น

ขั้นแรก ใช้ตัวคั่นท่อ (|) หากคุณต้องการตั้งค่าตัวคั่นเป็นไพพ์ ให้ใช้เคียวรีต่อไปนี้

mysql> DELIMITER |

แบบสอบถามเพื่อสร้างกระบวนงานที่เก็บไว้มีดังนี้:

mysql> DELIMITER |mysql> สร้างโพรซีเดอร์ Demo() -> start -> เลือก 2*3 เป็น TotalMultiplication -> จบ; -> |แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.12 วินาที)

ตอนนี้เปลี่ยนตัวคั่นด้วยอัฒภาค หากคุณต้องการตั้งค่าตัวคั่นเป็นอัฒภาค ให้ใช้แบบสอบถามต่อไปนี้

แบบสอบถามมีดังนี้:

mysql> ตัวคั่น;