Запуск триггеров Postgres на разных столбцах таблицы - PullRequest
0 голосов
/ 10 апреля 2010
CONTENT_TABLE
id | author | timestamp | title | description 
----+-----------------+-----------+----------------+----------------------
(0 rows)

SEARCH_TABLE
id | content_type_id | object_id | tsvector_title | tsvector_description 
----+-----------------+-----------+----------------+----------------------
(0 rows)

Я должен запускать триггер, когда CONTENT_TABLE ОБНОВЛЯЕТСЯ / ВСТАВЛЯЕТСЯ

Примерно так:

"CREATE TRIGGER tsvectorupdate BEFORE INSERT OR UPDATE ON course_course FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger(SHOULD_BE_THE_COLUMN_OF_SEARCH_TABLE(tsvector_description), 'pg_catalog.english', description);"
  • На самом деле мне нужно добавить tsvector для заголовка и описания CONTENT_TABLE в таблицу SEARCH_TABLE tsvector_title и tsvector_description. Могу ли я просто запустить один триггер для этого?

Любая помощь будет оценена. Заранее спасибо.

1 Ответ

3 голосов
/ 10 апреля 2010

По умолчанию tsvector_update_trigger не может смотреть на другую таблицу. Но если вы напишите свой собственный (например, pl / pgsql), вы можете сделать это легко. см. http://www.postgresql.org/docs/8.4/static/plpgsql-trigger.html. Вам просто нужно собрать данные и вызвать функцию to_tsvector (), поместив результат в столбец tsvector.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...