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

เกิดอะไรขึ้นถ้า INSERT ค่าว่างในคอลัมน์ TIMESTAMP DEFAULT CURRENT_TIMESTAMP

คอลัมน์ TIMESTAMP DEFAULT CURRENT_TIMESTAMP จะใส่วันเวลาปัจจุบันอัตโนมัติ

สร้างตารางมีคอลัมน์ TIMESTAMP

mysql> create table DemoTable ( 
    -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    -> UserLoginDate timestamp default current_timestamp 
    -> ); 
Query OK, 0 rows affected (0.61 sec)

INSERT โดยไม่ระบุค่า (VALUES())

mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.15 sec) 
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.10 sec) 
mysql> insert into DemoTable values(); 
Query OK, 1 row affected (0.08 sec) 
mysql> insert into DemoTable(UserId) values(null); 
Query OK, 1 row affected (0.13 sec)

ผลลัพธ์

+--------+---------------------+ 
| UserId | UserLoginDate       | 
+--------+---------------------+ 
|      1 | 2019-11-03 12:55:44 | 
|      2 | 2019-11-03 12:55:45 | 
|      3 | 2019-11-03 12:55:46 | 
|      4 | 2019-11-03 12:56:06 | 
+--------+---------------------+ 
4 rows in set (0.00 sec)

พฤติกรรม: ไม่ระบุคอลัมน์ TIMESTAMP ใน INSERT → ใช้ DEFAULT CURRENT_TIMESTAMP | ระบุคอลัมน์แต่ให้ NULL → ก็ใช้ DEFAULT (ขึ้นอยู่กับ SQL_MODE) | ใช้สำหรับ audit log, created_at อัตโนมัติ