Câu trả lời: KHÔNG NÊN (từ khóa dành riêng)
USER là từ khóa dành riêng (reserved word) trong MySQL, dùng cho quản trị người dùng (CREATE USER, GRANT...). Đặt tên bảng là user sẽ gây lỗi hoặc cần backtick mọi lúc.
Giải pháp 1: Đổi tên bảng (khuyên dùng)
Dùng số nhiều: users, hoặc tên cụ thể: app_users, accounts, members.
Giải pháp 2: Dùng backtick (nếu bắt buộc)
CREATE TABLE `user` (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(20),
UserAge INT
);
Mọi truy vấn sau đều phải dùng backtick: SELECT * FROM `user`.
Ví dụ với tên bảng "users" (khuyên dùng)
mysql> create table users (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20),
-> UserAge int
-> );
Query OK, 0 rows affected (0.51 sec)
mysql> insert into users(UserName,UserAge) values('Chris Brown',28);
Query OK, 1 row affected (0.17 sec)
mysql> insert into users(UserName,UserAge) values('John Doe',31);
Query OK, 1 row affected (0.18 sec)
mysql> insert into users(UserName,UserAge) values('John Smith',26);
Query OK, 1 row affected (0.17 sec)
mysql> insert into users(UserName,UserAge) values('David Miller',27);
Query OK, 1 row affected (0.13 sec)
Kết quả
mysql> select *from users;
+--------+--------------+---------+ | UserId | UserName | UserAge | +--------+--------------+---------+ | 1 | Chris Brown | 28 | | 2 | John Doe | 31 | | 3 | John Smith | 26 | | 4 | David Miller | 27 | +--------+--------------+---------+ 4 rows in set (0.00 sec)
Các từ khóa MySQL thường bị nhầm làm tên bảng/cột:
- user, order, group, key, index, select, where, table, database, trigger, procedure, function, view, schema, partition, ...
- Xem danh sách đầy đủ:
SHOW KEYWORDS(MySQL 8.0+) hoặc tài liệu tham khảo
Thói quen tốt: Đặt tên bảng số nhiều (users, orders, products), tên cột đơn số (id, name, email), luôn dùng backtick trong code SQL động.