我怎么能在标准的sql中重写这个pgplsql函数?

时间:2011-03-30 12:06:01

标签: function postgresql full-text-search heroku plpgsql

我正在使用Heroku开发一个应用程序,但他们没有为Postgres加载plpgsql语言,这在尝试运行以下内容时会导致问题:

CREATE FUNCTION profiles_search_trigger() RETURNS trigger AS $$
  begin
    new.search_vector :=
      setweight(to_tsvector('pg_catalog.english', coalesce(new.display_name,'')), 'A') ||
      setweight(to_tsvector('pg_catalog.english', coalesce(new.about,'')), 'B') ||
      setweight(to_tsvector('pg_catalog.english', coalesce(new.music_education,'')), 'D') ||
      setweight(to_tsvector('pg_catalog.english', coalesce(new.other_experience,'')), 'D') ||
      setweight(to_tsvector('pg_catalog.english', coalesce(new.favourite_artists,'')), 'D');
    return new;
  end
  $$ LANGUAGE plpgsql;

我怎样才能使用标准SQL而不是plpgsql重写它?

1 个答案:

答案 0 :(得分:4)

来自docs

  

目前无法在纯SQL函数语言中编写触发器函数。