Dav*_*veB 4 sql postgresql relational-database tsvector
我在表上允许我执行全文搜索的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);
Run Code Online (Sandbox Code Playgroud)
我已经在表中添加了另一个列,我希望包含在此触发器中,是否有任何方法可以更新触发器(以及tsvector列)或者是否需要删除列/触发器并重新添加它们?
PostgreSQL 9.0
提前致谢
大卫
您不需要删除列或索引,只需删除并重新创建触发器并更新任何更改的字段.
使用常规DROP TRIGGER语句删除触发器,然后使用新列tsvector_update_trigger在同一事务中重新创建它.现在UPDATE tablename SET user_tsv = ... WHERE new_column IS NOT NULL,如果您已添加列,则更新列.检查tsvector更新触发器的源以找出要在分配中使用的适当表达式.
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |