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@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a