Re: Problema con insert desde select y on conflict

From: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
To: Diego <mrstephenamell(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Problema con insert desde select y on conflict
Date: 2021-04-23 16:29:34
Message-ID: 20210423162934.GB4439@ahch-to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Fri, Apr 23, 2021 at 10:32:31AM -0300, Diego wrote:
>
> ERROR: column excluded.fec does not exist LINE 25: ...ON CONFLICT (address)
> DO UPDATE SET saldo.fecha = EXCLUDED.f... ^ SQL state: 42703 Character: 1052
>
[...]
> Alguien me podra orientar?
>
>
>     INSERT INTO wallet.saldo(address, fecha, saldo)
>
>     select  '0xaa515035c04aab' as token_address, max(block_timestamp)::date
> , sum(importe)
>     from (
>
>         SELECT
>             tt.block_timestamp, tt.value::numeric(60,20) / ('1' ||
> left('0000000000000000000000000', t.decimals))::numeric * -1 as importe
>         FROM raw.token_transfers tt inner join raw.tokens t on t.address =
> tt.token_address
>         where to_address = '0xaa515035c04aab'
>         and tt.block_timestamp between '20201009 00:00:00' and '20201009
> 23:59:59.99999'
>
>         union
>
>         SELECT
>             tt.block_timestamp, (tt.value::numeric(60,20) / ('1' ||
> left('0000000000000000000000000', t.decimals))::numeric) as importe
>         FROM raw.token_transfers tt inner join raw.tokens t on t.address =
> tt.token_address
>         where from_address = '0xaa515035c04aab'
>         and tt.block_timestamp between '20201009 00:00:00' and '20201009
> 23:59:59.99999'
>
>     ) as det
>
>     ON CONFLICT (address) DO UPDATE SET saldo.fecha = EXCLUDED.fec, 
> saldo.saldo = EXCLUDED.imp
>
>     ;
>

No veo donde están definidos los campos "fec" e "imp". hasta donde
entiendo no existen y por eso postgres te dice que no existen.

La calusula ON CONFLICT debería quedar así:

   ON CONFLICT (address) DO UPDATE SET saldo.fecha = EXCLUDED.fecha, 
saldo.saldo = EXCLUDED.saldo

--
Jaime Casanova
Director de Servicios Profesionales
SystemGuards - Consultores de PostgreSQL

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2021-04-24 15:38:31 Re: ERROR: las tablas declaradas WITH OIDS no está soportado
Previous Message Jaime Casanova 2021-04-23 15:51:46 Re: Cambiar el collate C.UTF-8 de base de datos postgres a en_US.utf8