溫馨提示×

mysql currenttimestamp在觸發(fā)器中的應(yīng)用

小樊
81
2024-10-02 13:23:13
欄目: 云計算

在MySQL中,CURRENT_TIMESTAMP 是一個函數(shù),用于返回當前的日期和時間。在觸發(fā)器(trigger)中使用 CURRENT_TIMESTAMP 可以在特定的數(shù)據(jù)庫操作(如插入、更新或刪除)時自動記錄時間戳。

以下是一個簡單的示例,說明如何在MySQL觸發(fā)器中使用 CURRENT_TIMESTAMP

  1. 首先,創(chuàng)建一個包含 created_at 列的表,用于存儲記錄的創(chuàng)建時間:
CREATE TABLE example_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

在這個例子中,created_at 列將自動設(shè)置為當前的時間戳,因為我們在列定義中使用了 DEFAULT CURRENT_TIMESTAMP。

  1. 接下來,創(chuàng)建一個觸發(fā)器,在插入新記錄到 example_table 時自動將 updated_at 列設(shè)置為當前的時間戳:
DELIMITER //
CREATE TRIGGER example_table_before_insert
BEFORE INSERT ON example_table
FOR EACH ROW
BEGIN
    SET NEW.updated_at = CURRENT_TIMESTAMP;
END;
//
DELIMITER ;

在這個例子中,我們創(chuàng)建了一個名為 example_table_before_insert 的觸發(fā)器,它會在插入新記錄之前執(zhí)行。在觸發(fā)器的 BEGINEND 之間,我們使用 SET 語句將 NEW.updated_at 列設(shè)置為當前的 CURRENT_TIMESTAMP

現(xiàn)在,當你向 example_table 插入新記錄時,created_atupdated_at 列都將自動設(shè)置為當前的時間戳:

INSERT INTO example_table (name) VALUES ('John Doe');

這將插入一條新記錄,其中 created_atupdated_at 列的值都是當前的時間戳。

0