[英]Update tsvector update trigger
我在表上允許我執行全文搜索的tsvector列'user_tsv'有以下tsvector更新觸發器,
CREATE TRIGGER tsvector_user_update BEFORE INSERT OR UPDATE ON users
FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(user_tsv, 'pg_catalog.english', firstname, surname, email);
CREATE INDEX user_index_tsv ON users USING gin(user_tsv);
我已經在表中添加了另一個列,我希望包含在此觸發器中,是否有任何方法可以更新觸發器(以及tsvector列)或者是否需要刪除列/觸發器並重新添加它們?
PostgreSQL 9.0
提前致謝
大衛
您不需要刪除列或索引,只需刪除並重新創建觸發器並更新任何更改的字段。
使用常規DROP TRIGGER
語句DROP TRIGGER
,然后使用tsvector_update_trigger
使用新列重新創建它,所有這些都在同一事務中。 現在UPDATE tablename SET user_tsv = ... WHERE new_column IS NOT NULL
,如果您已經添加了列,則更新列。 檢查tsvector更新觸發器的源以找出要在分配中使用的適當表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.