我在postgres中有两个表,我想创建一个函数,该函数在借出表中不能有两个以上具有相同个人id的借出。示例:在借出表中,我不能有三个来自同一个人的借出,也就是说,我们使用同一个人id借出。
我需要用一个函数来做这个,我把我想做的东西放进去,但是没有用
CREATE TABLE person (
name_person varchar (100) ,
id_person varchar(14) primary key
)
CREATE TABLE lending(
id_lending primary key (100) ,
id_publication (14) FK,
id_person fk REFERENCES id_person (person)
CREATE OR REPLACE FUNCTION check_numlending()
RETURNS trigger AS
$BODY$
BEGIN
IF( select * from lending
inner join person
on person.id_person = lending.id_person > 2 ) THEN
RAISE EXCEPTION 'ERROR';
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
-- Trigger
CREATE TRIGGER
trg_check_num_lending
BEFORE INSERT OR UPDATE ON
lendingFOR EACH ROW EXECUTE PROCEDURE check_numlending();
1条答案
按热度按时间but5z9lq1#
编写如下触发函数: