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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Copiar contenido de un serial a otro campo y concatenar 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 y concatenar campos
  • Date: Thu, 27 Mar 2008 13:46:45 -0300
  • Message-id: <20080327164645(dot)GK8764(at)alvh(dot)no-ip(dot)org>

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



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group