sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql infoga trigger för att sammanfoga

Här är en fungerande lösning:

CREATE TEMPORARY TABLE t_employees (
    first_name TEXT,
    mid_name TEXT,
    last_name TEXT,
    fullname TEXT
);

CREATE OR REPLACE FUNCTION set_fullname()
    RETURNS TRIGGER AS $$
    BEGIN
        NEW.fullname = NEW.first_name || ' ' || NEW.mid_name || ' ' || NEW.last_name;
        RETURN NEW;
    END;
    $$ language 'plpgsql';


CREATE TRIGGER set_fullname_trigger
    BEFORE INSERT OR UPDATE ON t_employees
    FOR EACH ROW
    EXECUTE PROCEDURE set_fullname();


SET client_min_messages TO 'debug';
INSERT INTO t_employees VALUES ('fname1', 'mname1', 'lname1');
SELECT * FROM t_employees;
UPDATE t_employees SET first_name = 'updated-first-name';
SELECT * FROM t_employees;


  1. MySQL:lägga till och multiplicera på olika tabeller

  2. Postgresql - Basic Arrays och array_agg

  3. Radie/närmaste resultat - Google Maps API

  4. Olika resultat i sqlfiddle.com 5.5.30 och MariaDB 5.5.31