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

ใช้ "When" เป็นชื่อคอลัมน์ใน CREATE TABLE ได้หรือไม่

ก่อนเริ่ม ลองตั้งชื่อคอลัมน์เป็น 'when' ใน CREATE TABLE ดูครับ

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

จะเกิดข้อผิดพลาดดังนี้:

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

ต้องห่อคำสงวน (reserved word) ด้วยแบ็กทิค (backticks) เช่น `when` มาลองสร้างตารางใหม่ครับ:

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)

เพิ่มข้อมูลตัวอย่าง

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)

แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable693;

ผลลัพธ์

+-----------+-------------+---------------------+
| 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)

คำอธิบาย: WHEN เป็นคำสงวนของ MySQL (ใช้ใน CASE WHEN) ต้องใช้ backticks `\`when\`` เพื่อใช้เป็น identifier (ชื่อตาราง/คอลัมน์) ได้