在MySQL中,CURRENT_TIMESTAMP
是一個函數(shù),用于返回當前的日期和時間。在觸發(fā)器(trigger)中使用 CURRENT_TIMESTAMP
可以在特定的數(shù)據(jù)庫操作(如插入、更新或刪除)時自動記錄時間戳。
以下是一個簡單的示例,說明如何在MySQL觸發(fā)器中使用 CURRENT_TIMESTAMP
:
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
。
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ā)器的 BEGIN
和 END
之間,我們使用 SET
語句將 NEW.updated_at
列設(shè)置為當前的 CURRENT_TIMESTAMP
。
現(xiàn)在,當你向 example_table
插入新記錄時,created_at
和 updated_at
列都將自動設(shè)置為當前的時間戳:
INSERT INTO example_table (name) VALUES ('John Doe');
這將插入一條新記錄,其中 created_at
和 updated_at
列的值都是當前的時間戳。