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

การใช้งาน IGNORE_SPACE SQL Mode ใน MySQL

SQL mode IGNORE_SPACE สามารถใช้เพื่อปรับเปลี่ยนวิธีที่ parser จัดการกับชื่อฟังก์ชันที่ไวต่อ whitespace (ช่องว่าง) กรณีต่อไปนี้คือกรณีที่เราสามารถใช้ IGNORE_SPACE SQL mode ได้

กรณีที่ 1 - เมื่อ IGNORE_SPACE SQL mode ปิดใช้งาน

หลังจากปิดใช้งาน IGNORE_SPACE SQL mode parser จะตีความชื่อว่าเป็นการเรียกฟังก์ชันเมื่อไม่มี whitespace ระหว่างชื่อและ parenthesis ต่อไป นี่ยังเกิดขึ้นเมื่อชื่อฟังก์ชันถูกใช้ในบริบท non-expression สามารถเข้าใจได้จากคำสั่งต่อไปนี้

mysql> Create table SUM(Id Int);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SUM(Id Int)' at line 1

ตอนนี้ เราสามารถใช้ whitespace หรือเขียนชื่อในเครื่องหมายคำพูดเพื่อกำจัดข้อผิดพลาดและทำให้ชื่อถูกจัดการเป็น identifier คำสั่งต่อไปนี้ทำสิ่งเดียวกัน

Create table SUM (id int);
Create table 'SUM'(id int);
Create table 'SUM' (id int);

กรณีที่ 2 - เมื่อ IGNORE_SPACE SQL mode เปิดใช้งาน

เมื่อเราเปิดใช้งานโหมดนี้ parser จะผ่อนคลายข้อกำหนดที่ไม่ควรมี whitespace ระหว่างชื่อฟังก์ชันและ parenthesis ต่อไป ตัวอย่างเช่น หลังจากเปิดใช้งาน IGNORE_SPACE SQL mode การเรียกฟังก์ชันทั้งสองต่อไปนี้ถูกต้องตามกฎ

Select SUM(Salary) from employee;
Select SUM (Salary) from employee;

แต่ ในกรณีนี้ parser จะจัดการชื่อฟังก์ชันเป็น reserved words หมายความว่า ช่องว่างตามหลังชื่อไม่ได้แสดงเป็น identifier อีกต่อไป