當一個新行插入到表forumtopics
(cols:id | userid)中時,比我想要執行的觸發器插入到upvotes
表中,該表使用forumtopics行中的id和userid。PosgresSQL觸發器
所以upvotes表看起來:ID |用戶ID | forumtopicsid(ID由原來的插入)
我可怎麼辦呢?
當一個新行插入到表forumtopics
(cols:id | userid)中時,比我想要執行的觸發器插入到upvotes
表中,該表使用forumtopics行中的id和userid。PosgresSQL觸發器
所以upvotes表看起來:ID |用戶ID | forumtopicsid(ID由原來的插入)
我可怎麼辦呢?
首先,創建一個觸發功能,例如(假設upvotes.id
是serial
類型):
create or replace function before_insert_on_forumtopics()
returns trigger language plpgsql as $$
begin
insert into upvotes (userid, forumtopicsid)
values (new.userid, new.id);
return new;
end $$;
接下來,創建一個觸發器:
create trigger before_insert_on_forumtopics
before insert on forumtopics
for each row
execute procedure before_insert_on_forumtopics();
CREATE TRIGGER init_upvote
AFTER INSERT ON forumtopics
FOR EACH ROW
EXECUTE PROCEDURE function_that_inserts_into_upvote(NEW.id, NEW.userid);