У меня есть триггер для обновления моих временных меток для каждой таблицы.Я использую следующую функцию:
CREATE OR REPLACE FUNCTION update_timstamp_table0() RETURNS TRIGGER AS
$$
BEGIN
IF NEW IS DISTINCT FROM OLD THEN
NEW.table0_timestamp_column = extract( 'epoch' from NOW() )
RETURN NEW;
ELSE
RETURN NULL;
END IF;
END;
$$ LANGUAGE 'plpgsql';
Поскольку все столбцы меток времени имеют разные имена, я должен написать функцию для каждой таблицы.
Я хотел бы сделать что-то вроде этого:
CREATE OR REPLACE FUNCTION update_timstamp(timestamp_col_name varchar) RETURNS TRIGGER AS
$$
BEGIN
IF NEW IS DISTINCT FROM OLD THEN
NEW.(timestamp_col_name) = extract( 'epoch' from NOW() )
RETURN NEW;
ELSE
RETURN NULL;
END IF;
END;
$$ LANGUAGE 'plpgsql';
Так что я могу использовать одну и ту же функцию для каждого триггера.Но я не знаю правильный синтаксис для доступа к столбцу через переменную NEW.(timestamp_col_name)
.
Возможно ли это?и как это делается?