Cách sửa lỗi "You have an error in your syntax..." trong MySQL
Loại lỗi này xảy ra khi bạn sử dụng cú pháp không đúng. Hãy xem ví dụ chúng ta tạo bảng và lỗi "1054" phát sinh.
Bảng tại đây:
mysql> create table DemoTable689(
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100),
UserLoginDate date(100) NOT NULL
);
Điều này sẽ tạo ra đầu ra sau tức là lỗi cho cú pháp không đúng:
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 '(100) NOT NULL )' at line 5
Hãy sửa lỗi 1054. Bạn cần chỉ dùng DATE NOT NULL. Hãy tạo bảng:
mysql> create table DemoTable689(
UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName varchar(100),
UserLoginDate date NOT NULL
);
Query OK, 0 rows affected (0.68 sec)
Chèn một số bản ghi vào bảng bằng lệnh insert:
mysql> insert into DemoTable689(UserName, UserLoginDate) values('John', DATE(NOW()));
Query OK, 1 row affected (0.40 sec)
mysql> insert into DemoTable689(UserName, UserLoginDate) values('Chris', '2018-01-21');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable689(UserName, UserLoginDate) values('Robert', CURDATE());
Query OK, 1 row affected (0.20 sec)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select:
mysql> select * from DemoTable689;
Điều này sẽ tạo ra đầu ra sau. Bây giờ chúng ta đã sửa lỗi:
+--------+----------+---------------+ | UserId | UserName | UserLoginDate | +--------+----------+---------------+ | 1 | John | 2019-07-21 | | 2 | Chris | 2018-01-21 | | 3 | Robert | 2019-07-21 | +--------+----------+---------------+ 3 rows in set (0.00 sec)
Giải thích: Kiểu DATE không chấp nhận độ dài hiển thị như DATE(100). Chỉ các kiểu chuỗi (VARCHAR, CHAR) và số (INT, DECIMAL) mới có độ dài.