Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cơ chế IGNORE_SPACE SQL mode trong MySQL

SQL mode IGNORE_SPACE thay đổi cách parser xử lý tên hàm nhạy cảm với khoảng trắng.

Trường hợp 1: IGNORE_SPACE tắt (mặc định)

Parser coi tên là function call khi không có khoảng trắng giữa tên và dấu (. Lỗi nếu dùng tên hàm làm identifier không có space:

mysql> CREATE TABLE SUM(Id Int);
ERROR 1064 (42000): You have an error in your SQL syntax...

Khắc phục: thêm space hoặc quote tên:

CREATE TABLE SUM (id int);
CREATE TABLE `SUM`(id int);
CREATE TABLE `SUM` (id int);

Trường hợp 2: IGNORE_SPACE bật

Parser cho phép space giữa tên hàm và (:

SELECT SUM(Salary) FROM employee;
SELECT SUM (Salary) FROM employee;  -- cả hai đều hợp lệ

Nhưng lúc này tên hàm trở thành từ khóa reserved, không dùng làm identifier được.