【发布时间】:2015-11-21 01:55:36
【问题描述】:
我想基于 id (1-111.1x) 和我的行的名称字段构建一个 tsvector,全部来自触发器并使用 tsvector_update_trigger(tsv, 'pg_catalog.german', id, name) .
但我的 id 最终会像“-111.1”而不是“1-111.1x”一样被截断。
有没有办法自定义转换,以便在正确转换名称字段的同时保留 id 字段(或应用某些操作,如 lower())?
类似这样的东西(这不起作用,因为 setweight 需要一个 tsvector)?
CREATE FUNCTION tsv_trigger() RETURNS trigger AS $$
begin
new.tsv :=
setweight(new.id, 'A') ||
setweight(to_tsvector('pg_catalog.german', coalesce(new.name,'')), 'D');
return new;
end
$$ LANGUAGE plpgsql;
CREATE TRIGGER TS_tsv
BEFORE INSERT OR UPDATE ON "model"
FOR EACH ROW EXECUTE PROCEDURE
tsv_trigger();
谢谢!
【问题讨论】:
标签: postgresql