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

Thiết lập giá trị mặc định datetime là thời gian hệ thống trong MySQL?

Sử dụng CURRENT_TIMESTAMP làm giá trị mặc định (DEFAULT) cho cột TIMESTAMP hoặc DATETIME (MySQL 5.6.5+).

Tạo bảng

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> ClientFirstName VARCHAR(20),
    -> ClientLastName VARCHAR(20),
    -> ClientAge INT
    -> );

Thêm cột timestamp với mặc định là thời gian hiện tại

mysql> ALTER TABLE DemoTable 
    -> ADD COLUMN ClientProjectDeadline TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.46 sec)

Kiểm tra cấu trúc bảng

mysql> DESC DemoTable;
+-----------------------+-------------+------+-----+-------------------+----------------+
| Field                 | Type        | Null | Key | Default           | Extra          |
+-----------------------+-------------+------+-----+-------------------+----------------+
| Id                    | int(11)     | NO   | PRI | NULL              | auto_increment |
| ClientFirstName       | varchar(20) | YES  |     | NULL              |                |
| ClientLastName        | varchar(20) | YES  |     | NULL              |                |
| ClientAge             | int(11)     | YES  |     | NULL              |                |
| ClientProjectDeadline | timestamp   | YES  |     | CURRENT_TIMESTAMP |                |
+-----------------------+-------------+------+-----+-------------------+----------------+

Các biến thể hữu ích

Cú phápHành vi
DEFAULT CURRENT_TIMESTAMPTự động điền thời gian hiện tại khi INSERT
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPCập nhật thời gian mỗi khi hàng bị sửa
DATETIME DEFAULT CURRENT_TIMESTAMPMySQL 5.6.5+, dùng cho DATETIME thay vì TIMESTAMP

Lưu ý quan trọng

  • TIMESTAMP có phạm vi 1970-2038, DATETIME rộng hơn (1000-9999)
  • TIMESTAMP tự chuyển đổi múi giờ, DATETIME không
  • Chỉ một cột TIMESTAMP trong bảng có thể dùng DEFAULT CURRENT_TIMESTAMP (trước MySQL 5.6.5)