From: | "Marcos Saldivar" <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(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: | 2008-03-27 17:05:24 |
Message-ID: | 1c4d91ab0803271005j6c689c83g3968c748b927702c@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 27/03/08, el-PRiNCiPiTo <el-PRiNCiPiTo(at)terra(dot)es> escribió:
> Hola a todos,
> estoy utilizando una base de datos pgsql para almacenar los datos de un
> programa y tengo un par de dudas que supongo serán muy básicas pero
> estoy buscando por internet y no veo ninguna solución que me sirva.
> 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.
algo como esto:
dberp=# create table foo(id_serie serial, id_serie_copia int);
NOTICE: CREATE TABLE creará una secuencia implícita
«foo_id_serie_seq» para la columna serial «foo.id_serie»
CREATE TABLE
dberp=# alter table foo alter column id_serie_copia set default
currval('foo_id_serie_seq'::regclass);
ALTER TABLE
dberp=# alter table foo alter column id_serie_copia set not null;
ALTER TABLE
dberp=# insert into foo values(default,default);
INSERT 0 1
dberp=# select * from foo;
id_serie | id_serie_copia
----------+----------------
1 | 1
(1 fila)
dberp=# insert into foo values(default,default);
INSERT 0 1
dberp=# select * from foo;
id_serie | id_serie_copia
----------+----------------
1 | 1
2 | 2
(2 filas)
dberp=#
> 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.
>
> Muchas gracias
>
> --
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo Martínez | 2008-03-27 17:43:44 | Re: Uso table_log |
Previous Message | Alvaro Herrera | 2008-03-27 16:47:41 | Re: Error en postgresql 8.3.1 en windows |