【发布时间】:2021-05-05 06:39:39
【问题描述】:
我有 2 个名为票证和票证更新的表
-
工单(工单ID、问题、状态(设置为打开或关闭)、优先级、记录时间、客户ID、产品ID)
-
ticketupdate(ticketupdateID、updatemessage、updatetime、ticketID、staffID)
我想创建一个触发器,所以当我将值插入ticketupdate 表时,它会检查ticket 表的状态以查看它是打开还是关闭。如果它已关闭,那么它会阻止我插入值。
我创建了一个触发器和函数如下:
create or replace function check_status()
returns trigger as $BODY$
BEGIN
return (select status from ticket where new.ticketID = ticket.ticketID);
if ticket.status = 'open' then
insert into ticketupdate values (ticketupdateid, update_message,
current_timestamp, ticketID, staffID);
else
raise exception 'Status of the ticket is closed, no further action necessary.';
end if;
end;
$BODY$
LANGUAGE plpgsql;
create trigger update_ticket
after update on ticket
for each row
execute procedure check_status();
但是,当我在其中插入值时,我收到一条错误消息:无法从返回复合类型的函数返回非复合值
【问题讨论】:
标签: postgresql