postgresSQL 實現數據修改后,自動更新updated_date/ts等字段


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. 測試即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM