-- -- content_keyword__item_assign/5 -- create or replace function content_keyword__item_assign( integer, integer, integer, integer, character varying ) returns int4 as $$ declare item_assign__item_id alias for $1; item_assign__keyword_id alias for $2; item_assign__context_id alias for $3; -- default null item_assign__creation_user alias for $4; -- default null item_assign__creation_ip alias for $5; -- default null exists_p boolean; begin -- Do nothing if the keyword is assigned already select count(*) > 0 into exists_p from dual where exists (select 1 from cr_item_keyword_map where item_id = item_assign__item_id and keyword_id = item_assign__keyword_id); if NOT exists_p then insert into cr_item_keyword_map ( item_id, keyword_id ) values ( item_assign__item_id, item_assign__keyword_id ); end if; return 0; end;$$ language plpgsql;