【发布时间】:2021-12-23 22:36:58
【问题描述】:
我有两张桌子。当一条记录添加到service 表时,我想在付款记录中自动创建一条状态为false 的记录。我希望付款看起来像这样,例如,如果已添加服务
它应该像这样自动创建付款记录:
id: autoincrement, fk_service 1, price null, payment_date null, status false
在我的网络应用程序中,我将只更新值。
原始表格:
服务
id BIGSERIAL PK,
start_date date not null,
end_date date null,
status VARCHAR(20)
付款
id BIGSERIAL PK,
fk_service BIGSERIAL,
price DECIMAL,
payment_date date,
status BOOLEAN not null,
FOREIGN KEY(fk_service) references service(id)
有人可以建议,我怎样才能做到这一点?
我试着写一个触发器
CREATE FUNCTION insert_payment() RETURNS TRIGGER
AS $insert_payment$
BEGIN
IF NEW service THEN
insert into payment(fk_service, status) values (service.id, false)
END IF;
END;
我收到syntax error at or near create line 5 as $BODY$CREATE FUNCTION insert_payment() RETURNS TRIGGER^
【问题讨论】:
-
看看triggers
-
表格有行,而不是记录。
-
@JimJones 你能告诉我我的触发器做错了什么吗?
-
"Create a record in a record" 对我来说毫无意义(忽略表有行而不是记录的事实)
标签: sql postgresql triggers