From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Juanky Moral <juanky(dot)moral(at)gmail(dot)com> |
Cc: | Pablo Braulio <brulics(at)gmail(dot)com>, pgsql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Usando vistas. Ahora creando secuencias. |
Date: | 2006-02-13 14:01:52 |
Message-ID: | 20060213140152.GA5107@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Juanky Moral escribió:
> On 2/12/06, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
> > create table prueba (
> > id varchar(10) not null default nextval(to_char(current_date, 'yy') || '/' ||
> > 'id_num_incidencia_seq'),
> > nombre name );
> >
> > Pero al introducir datos me ocurre lo siguiente:
> >
> > INSERT INTO prueba (nombre) values ('pablo');
> > ERROR: no existe la relación «06/id_num_incidencia_seq
Una vez que hayas solucionado ese problema como lo describe Juanky,
asegurate de poner ademas una restriccion CHECK que verifique que el
dato que se introduce tiene el formato correcto. De lo contrario,
cualquiera podria enviar un INSERT que incluya el valor para el campo
"id", lo cual se saltara la expresion DEFAULT y podria ser absolutamente
cualquier cosa.
IMHO es mala idea tener una columna compuesta en una tabla (en realidad
creo que no es MHO solamente, sino que es una de las reglas de alguna
forma normal). La sugerencia de Espartano de tener dos columnas (y dar
el formato apropiado en el despliegue, sea en el SELECT o en una vista)
es mucho mejor.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2006-02-13 14:46:16 | Re: generar sumario |
Previous Message | Nicolás Domínguez Florit | 2006-02-13 12:08:19 | dump | restore en Windows... |