Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2008, 10:01
Avatar de xcars
xcars
 
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
llaves foraneas y primary keys

Saludos a todos, aunque tengo claro el concepto de llaves primarias y foraneas, tengo un ligero problema a la hora de realizar mis diseños y luego transformarlos en las tablas correspondientes, he utilizado dbdesigner4 y TOAD Data modeler, en ambos casos, creo las relaciones tal y como deberia de ser, etc etc, a la hora de genera los scripts, me genera codigo en el cual mySql me responde con error, ej: el siguiente codigo es parte de lo que me generan

Código:
Create table paises (
	pais_id Int NOT NULL AUTO_INCREMENT,
	pais_nombre Varchar(50),
 Primary Key (pais_id)) ENGINE = InnoDB;

Create table clientes (
	pais_id Int NOT NULL,
	cliente_id Int NOT NULL AUTO_INCREMENT,
	cliente_nombre Varchar(50),
 Primary Key (pais_id,cliente_id)) ENGINE = InnoDB;

Create table carteras (
	pais_id Int NOT NULL,
	cliente_id Int NOT NULL,
	cartera_id Int NOT NULL AUTO_INCREMENT,
	despacho_id Int NOT NULL,
	agencia_id Int NOT NULL,
	gestor_id Int NOT NULL,
	cartera_nombre Varchar(50),
 Primary Key (pais_id,cliente_id,cartera_id)) ENGINE = InnoDB;


Alter table clientes add Foreign Key (pais_id) references paises (pais_id) on delete  restrict on update  restrict;
Alter table carteras add Foreign Key (pais_id,cliente_id) references clientes (pais_id,cliente_id) on delete  restrict on update  restrict;
Alter table carteras_metas add Foreign Key (pais_id,cliente_id,cartera_id) references carteras (pais_id,cliente_id,cartera_id) on delete  restrict on update  restrict;
Alter table comisiones add Foreign Key (pais_id,cliente_id,cartera_id) references carteras (pais_id,cliente_id,cartera_id) on delete  restrict on update  restrict;
Alter table cuentas add Foreign Key (pais_id,cliente_id,cartera_id) references carteras (pais_id,cliente_id,cartera_id) on delete  restrict on update  restrict;
ahora bien al ejecutar el codigo, la tabla paises la genera bien, pero al generar la tabla clientes, que es la segunda me da el siguiente error:

Sql Error: Incorrect table definition, there can be only one auto column and it must defined as a key
En TOAD Data modeler, ejecuto el verificador del diseño y no me arroja ni warnings ni errores, realmente no entiendo que pasa, mi deficiencia es que nunca habia utilizado mysql para un proyecto grande como el que desarrollo ahora, en el que es importante la integridad referencial y las relaciones, asi que espero y alguien pueda darme luces. Gracias
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.