Giá trị mặc định cho cột TIMESTAMP trong MySQL
Không thể dùng CURRENT_DATE() làm DEFAULT cho cột TIMESTAMP. MySQL chỉ cho phép CURRENT_TIMESTAMP (hoặc các alias: NOW(), LOCALTIME, LOCALTIMESTAMP).
Cú pháp đúng
CREATE TABLE yourTable (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE defaultCurrent_DateDemo (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20),
-> StudentAdmissionDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-> );
Chèn dữ liệu:
mysql> INSERT INTO defaultCurrent_DateDemo(StudentName) VALUES ('Larry');
mysql> INSERT INTO defaultCurrent_DateDemo(StudentName, StudentAdmissionDate) VALUES ('Chris', '2019-01-31');
Kết quả:
+-----------+-------------+----------------------+ | StudentId | StudentName | StudentAdmissionDate | +-----------+-------------+----------------------+ | 1 | Larry | 2019-04-02 19:38:19 | | 2 | Chris | 2019-01-31 00:00:00 | +-----------+-------------+----------------------+
- Hàng 1: Không cung cấp AdmissionDate → tự động lấy CURRENT_TIMESTAMP
- Hàng 2: Cung cấp giá trị cụ thể → dùng giá trị đó
Các biến thể DEFAULT TIMESTAMP