Можно ли использовать переменные для доступа к столбцам записей в триггере postgresql? - PullRequest
1 голос
/ 14 сентября 2010

У меня есть триггер для обновления моих временных меток для каждой таблицы.Я использую следующую функцию:

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).

Возможно ли это?и как это делается?

1 Ответ

1 голос
/ 14 сентября 2010
...