【问题标题】:Postgres update a diferent tablePostgres 更新不同的表
【发布时间】:2020-09-13 03:07:14
【问题描述】:

您好,我正在尝试创建触发器,在某行的某个列上插入后,触发器将该值添加到某个位置的另一个表上。 我有一个名为更新的表:

create table public.updates (
id serial not null,
matricula varchar(10) NOT NULL,
primensalidade int,
segmensalidade int,
tercmensalidade int,
quamensalidade int,
quimensalidade int,
sexmensalidade int,
foreign key (id) references creditos(id));

我有一张桌子叫:

CREATE TABLE public.creditos (
id serial NOT NULL,
veiculo varchar(10) NOT NULL,
matricula varchar(10) NOT NULL,
nome bpchar(30) NOT NULL,
telemovel varchar(10) NOT NULL,
valordevendapronto int4 NOT NULL,
juros int4 NULL,
valortotal int4 NULL,
entradainicial int4 NOT NULL,
primensalidade int4 NULL,
segmensalidade int4 NULL,
tercmensalidade int4 NULL,
quamensalidade int4 NULL,
quimensalidade int4 NULL,
sexmensalidade int4 NULL,
datainicial date NULL DEFAULT now(),
datafinal date NULL,
pago bpchar(3) NULL,
CONSTRAINT creditos_pkey PRIMARY KEY (id));

我的目标是在我插入updates.primensalidade 之后,它转到creditos.primensalidade 并将其更改为我之前在updates.primensalidade 上选择的内容,其中我的creditos.matricula 和updates.matricula 相同。 我到目前为止是:

CREATE OR REPLACE function creditoupdate()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
begin 
    insert into creditos(primensalidade) values(new.primensalidade) where matricula = new.matricula ;
    return new;
end;
$function$
;

create trigger creditoupdatetrigger after
insert
    on
    updates for each row execute function creditoupdate();

我希望你能帮助我。

【问题讨论】:

    标签: sql postgresql triggers sql-update sql-insert


    【解决方案1】:

    WHERE 不能像这样在INSERT 中使用。

    要更新表creditos 中的primensalidade 列,可以使用以下命令:

    UPDATE creditos SET primensalidade = new.primensalidade where matricula = new.matricula;

    更多关于更新 - https://www.postgresql.org/docs/current/sql-update.html

    更多关于 INSERT - https://www.postgresql.org/docs/current/sql-insert.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 2019-07-10
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      相关资源
      最近更新 更多