Skip site navigation (1) Skip section navigation (2)

Re: Copiar contenido de un serial a otro campo yconcatenar campos

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: el-PRiNCiPiTo <el-PRiNCiPiTo(at)terra(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Copiar contenido de un serial a otro campo yconcatenar campos
Date: 2008-03-27 16:46:45
Message-ID: 20080327164645.GK8764@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
el-PRiNCiPiTo escribió:

> 	La primera duda es que tengo una tabla en la que hay un campo id que es  
> de tipo serial y necesito añadir otro campo que tenga el mismo valor que  
> este serial. Desde el programa tendría que cambiar demasiado código para  
> que lo hiciera así que me preguntaba si hay alguna forma de hacer que la  
> base de datos inserte el mismo valor que el campo id en el campo nuevo  
> cada vez que se cree una fila nueva.
> 	La otra duda es parecida pero en lugar de copiar un capo serial querría  
> que concatenara el valor de tres campos en uno nuevo. También  
> necesitaría que esto fuera automático cada vez que se crea una fila  
> nueva porque para hacerlo desde el programa tendría que hacer muchas  
> modificaciones y puede que me olvidara de algún sitio.

Todo esto puedes hacerlo en un trigger BEFORE INSERT.

Una cosa que parece sospechosa es eso de concatenar tres campos para
generar otro campo.  Creo que seria mas sensato hacer la concatenacion
en el momento de la consulta.  Y para ahorrarte el problema de hacerlo
en la aplicacion, hazlo en una vista:

create view mi_vista
as select uno || dos || tres, otros_campos
from mi_tabla

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2008-03-27 16:47:41
Subject: Re: Error en postgresql 8.3.1 en windows
Previous:From: Alvaro HerreraDate: 2008-03-27 16:28:11
Subject: Re: Uso table_log

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group