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

Có thể dùng "When" làm tên cột trong CREATE TABLE không?

Thử tạo bảng với cột tên When (từ khóa dành riêng):

mysql> create table DemoTable693(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(100),
    When datetime
);

Lỗi:

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 'When datetime at line 5

Giải pháp: Bọc từ khóa dành riêng bằng backticks ` (dấu ngã).

Tạo bảng đúng cách

mysql> create table DemoTable693 (
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(100),
    `When` datetime
);
Query OK, 0 rows affected (0.63 sec)

Chèn dữ liệu (cần backticks cho cột When)

mysql> insert into DemoTable693(StudentName, `When`) values('Chris', NOW());
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable693(StudentName, `When`) values('Robert', CURDATE());
Query OK, 1 row affected (0.22 sec)

Hiển thị dữ liệu

mysql> select * from DemoTable693;

Kết quả

+-----------+-------------+---------------------+
| StudentId | StudentName | When                |
+-----------+-------------+---------------------+
| 1         | Chris       | 2019-07-21 18:57:19 |
| 2         | Robert      | 2019-07-21 00:00:00 |
+-----------+-------------+---------------------+
2 rows in set (0.00 sec)

Quy tắc: Luôn dùng backticks `ten_cot`, `ten_bang` cho:

  • Từ khóa dành riêng (SELECT, WHERE, WHEN, ORDER, GROUP, KEY, INDEX, ...).
  • Tên chứa khoảng trắng, ký tự đặc biệt, số đầu tiên.
  • Tên trùng từ khóa hàm (DATE, TIME, YEAR, ...).

Danh sách từ khóa dành riêng phổ biến: SELECT, INSERT, UPDATE, DELETE, WHERE, FROM, JOIN, LEFT, RIGHT, INNER, OUTER, ON, GROUP, ORDER, BY, LIMIT, OFFSET, UNION, DISTINCT, AS, ASC, DESC, AND, OR, NOT, IN, LIKE, BETWEEN, IS, NULL, TRUE, FALSE, PRIMARY, KEY, INDEX, UNIQUE, FOREIGN, REFERENCES, CONSTRAINT, DEFAULT, AUTO_INCREMENT, CREATE, ALTER, DROP, TABLE, DATABASE, VIEW, PROCEDURE, FUNCTION, TRIGGER, EVENT, PARTITION, ENGINE, CHARSET, COLLATE, ...