Re: Creación de campos auto numérico a traves de secuencias en postgresql 9.3

From: Álvaro Hernández Tortosa <aht(at)8Kdata(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Creación de campos auto numérico a traves de secuencias en postgresql 9.3
Date: 2015-01-21 23:50:40
Message-ID: 54C03B50.1040107@8Kdata.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


On 21/01/15 17:38, Andres Yepez wrote:
> Buenos días con todos de la lista.
> Tengo una inquitud.
>
> Estoy realizando el diagrama de base de datos de un nuevo sistema,
> para la generación del modelo conceptual y fisico utilizo la
> Herramienta Power Designer.
>
> Al momento de generar el script para postgresql
> Tengo la creacion de la tabla y la secuencia de forma independiente
> pero en ninguna parte de script me indica que campo utiliza la
> secuencia es decir

¿Para qué quieres un id autoincrementado? ¿No puede ser usr_usuario
PK? Si es así, esto es una clave natural, y debe usarse como PK, la
secuencia sobra.

No te sumes a la SSSKA
(http://www.slideshare.net/PGExperts/keyvil-lightning-talk)

Saludos,

Álvaro

--
Álvaro Hernández Tortosa

-----------
8Kdata

> Ejemplo
> - Sequence: seguridad.seq_seg_usuario
>
> -- DROP SEQUENCE seguridad.seq_seg_usuario;
>
> CREATE SEQUENCE seguridad.seq_seg_usuario
> INCREMENT 1
> MINVALUE 1
> MAXVALUE 9223372036854775807
> START 1
> CACHE 1;
> ALTER TABLE seguridad.seq_seg_usuario
> OWNER TO postgres;
> COMMENT ON SEQUENCE seguridad.seq_seg_usuario
> IS 'Secuencia que se utiliza para la generación de la clave primaria ';
>
> ------tabla
> CREATE TABLE seguridad.seg_usuario
> (
> usr_codigo integer NOT NULL, -- PK
> usr_usuario character varying(50) NOT NULL, -- nombre del usuario
> que ingresa al sistema
> usr_contrasenia character varying(50) NOT NULL, -- contraseña
> definida por el usuario
> usr_estado integer NOT NULL, -- Estado general...
> usr_fecha_creacion date NOT NULL, -- Fecha de creación del registro
> dep_codigo integer, -- Código del departamento al cual pertenece el
> usuario
> per_codigo_fk integer, -- codigo de la persona FK
> usr_fecha_ultimo_acceso date, -- Fecha de último de acceso
> usr_conectado integer, -- Bandera que indica si el usuario esta
> conectado...
> CONSTRAINT pk_seg_usuario PRIMARY KEY (usr_codigo)
> )
> WITH (
> OIDS=FALSE
> );
> ALTER TABLE seguridad.seg_usuario
> OWNER TO postgres;
>
>
> -- Entonces lo que me toca hacer de forma manual es indicar que
> usr_codigo utilice la secuencia seguridad.seq_seg_usuario
>
> alter table seguridad.seg_usuario
> alter column usr_codigo set default nexval('seguridad.seq_seg_usuario');
>
> para una tabla esta bien, pero estoy generando unas 50 tablas y
> realizar este proceso manual no es optimo.
>
> Es posible a través de la herramienta "Power Designer" solucionar este
> inconveniente o en su defecto existe otra herramienta que me pueda
> ayudar a solucionar este inconveniente
>
> Gracias por su pronta respuesta.
>

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gilberto Castillo 2015-01-22 13:35:19 Re: CREAR CLUSTER EN WINDOWS SERVER 2008
Previous Message MARIA ANTONIETA RAMIREZ SOLIS 2015-01-21 23:02:39 Re: CREAR CLUSTER EN WINDOWS SERVER 2008