簡體   English   中英

更新tsvector更新觸發器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM