0

i have code for MySQL but i need to PostgreSQL. Can you help me convert from MySQL to PostgreSQL?

Create TRIGGER date_reservation
BEFORE INSERT ON reservation
FOR EACH ROW 
BEGIN 
IF 
NEW.date_reservation IS NULL OR NEW.date_reservation = ''
THEN 
SET NEW.date_reservation = NOW();
END IF 
END 

4

2 回答 2

1

在 MySQL 和 Postgres 中,我建议您使用默认值简单地执行此操作:

create table date_reservation (
    . . . 
    date_reservation timestamp default now(),
    . . . 
);

你实际上可以在 MySQL 中做类似的事情。

于 2020-01-20T23:30:32.873 回答
1

在 Postgres 中,您首先需要创建一个函数:

CREATE FUNCTION date_reservation_function()
RETURNS trigger AS $$
BEGIN
    IF NEW.date_reservation IS NULL OR NEW.date_reservation = '' THEN
        NEW.date_reservation := NOW();
    END IF;
    RETURN NEW;
END$$ LANGUAGE 'plpgsql'

然后,您创建一个调用该函数的触发器:

CREATE TRIGGER date_reservation_trigger
BEFORE INSERT ON reservation
FOR EACH ROW
EXECUTE PROCEDURE date_reservation_function()
于 2020-01-20T23:13:37.833 回答