溫馨提示×

mysql時間戳怎么自動更新

小億
81
2024-09-28 23:02:43
欄目: 云計算

在MySQL中,如果你想要自動更新一個時間戳字段,你可以使用以下幾種方法:

  1. 使用TIMESTAMPDATETIME數(shù)據(jù)類型:

當你創(chuàng)建一個表時,你可以將某個字段設置為TIMESTAMPDATETIME數(shù)據(jù)類型。這兩種數(shù)據(jù)類型都可以自動更新時間戳。

  • TIMESTAMP:在插入或更新記錄時,該字段會自動設置為當前的時間戳。它的范圍是’1970-01-01 00:00:01’ UTC 到 ‘2038-01-19 03:14:07’ UTC。
  • DATETIME:在插入或更新記錄時,該字段不會自動更新。它的范圍是’1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’。

例如,創(chuàng)建一個包含自動更新時間戳的表:

CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  1. 使用觸發(fā)器(Triggers):

如果你想要在插入、更新或刪除記錄時自動更新時間戳,你可以使用觸發(fā)器。以下是一個示例,展示了如何在插入新記錄時自動更新created_atupdated_at字段:

DELIMITER //
CREATE TRIGGER example_before_insert
BEFORE INSERT ON example
FOR EACH ROW
BEGIN
    SET NEW.created_at = NOW();
    SET NEW.updated_at = NOW();
END;
//
CREATE TRIGGER example_before_update
BEFORE UPDATE ON example
FOR EACH ROW
BEGIN
    SET NEW.updated_at = NOW();
END;
//
DELIMITER ;

現(xiàn)在,當你插入或更新example表中的記錄時,created_atupdated_at字段將自動更新為當前的時間戳。

0