1. 需求說明:
實現MYSQL中有on update CURRENT_TIMESTAMP
2. 需求分析
由於數據庫遷移需要將MYSQL中的數據遷移到postgresSQL中,由於MYSQL中有on update CURRENT_TIMESTAMP這種功能但是PostgresSQL中並沒有。需要尋找一個代替方法來做,采用觸發器,來進行更新
3. 實現
1. 表的結構如下
CREATE TABLE users (
id serial not null,
name varchar(100),
email varchar(200),
updated_time timestamp
)
需要實現的功能,當數據更新的時候,將updated_time字段進行更新
2. 創建觸發器更新該字段
CREATE OR REPLACE FUNCTION "upd_timestamp"()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_time = now();
RETURN NEW;
END;
$$ language 'plpgsql';
3. 在表中添加對應的觸發器
CREATE TRIGGER "updated_time" BEFORE UPDATE ON "users" FOR EACH ROW EXECUTE PROCEDURE "upd_timestamp"();
4. 測試即可
