Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Crear una tabla con multiples claves foraneas

Estas en el tema de Crear una tabla con multiples claves foraneas en el foro de Mysql en Foros del Web. Buenas Me gustaría poder crear una tabla que tenga más de un campo que sean claves foráneas. He visto un montón de ejemplos pero teniendo ...
  #1 (permalink)  
Antiguo 08/07/2014, 07:26
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 11 años, 5 meses
Puntos: 1
Crear una tabla con multiples claves foraneas

Buenas

Me gustaría poder crear una tabla que tenga más de un campo que sean claves foráneas. He visto un montón de ejemplos pero teniendo solo un campo como clave foránea.

Quiero que tanto el idTipoCliente como el idPais de la tabla de cliente sean claves foraneas de sus respectivas tablas...


Código:
CREATE TABLE tipoCliente (
	id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
	tipoCliente varchar(25) NOT NULL UNIQUE,
	codigoCliente varchar(25),
	descripcion varchar(60))
	ENGINE=InnoDB;

CREATE TABLE pais (
	id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
	nombre varchar(25) NOT NULL UNIQUE,
	descripcion varchar(60))
	ENGINE=InnoDB;

CREATE TABLE cliente (
	id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
	nombre varchar(25) NOT NULL,
	apellido1 varchar(25) NOT NULL,
	apellido2 varchar(25) NOT NULL,
	idPais int,
	email varchar(40) NOT NULL UNIQUE,
	idTipoCliente int NOT NULL,
	FOREIGN KEY (idTipoCliente) REFERENCES tipoCliente (id)
    	ON DELETE RESTRICT ON UPDATE CASCADE)
	ENGINE=InnoDB;
Alguien podría ayudarme??
  #2 (permalink)  
Antiguo 08/07/2014, 07:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Crear una tabla con multiples claves foraneas

Ya lo tienes.
Simplemente tienes que indicar las fk restantes de la misma forma que pusiste La primera.
No hay secretos en eso.

Pruebalo y nos cuentas.
Si te salta un error, postea el mensaje y veremos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/07/2014, 08:04
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Crear una tabla con multiples claves foraneas

Soy un poco estúpido...

efectivamente, la cosa es repetir la estructura de "FOREIGN KEY (columna) REFERENCES tabla (columna) ON DELETE RESTRICT ON UPDATE CASCADE" las veces que se necesite...

CREATE TABLE cliente (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
nombre varchar(25) NOT NULL,
apellido1 varchar(25) NOT NULL,
apellido2 varchar(25) NOT NULL,
idPais int,
email varchar(40) NOT NULL UNIQUE,
idTipoCliente int NOT NULL,
FOREIGN KEY (idPais) REFERENCES pais (id)
ON DELETE RESTRICT ON UPDATE CASCADE),
FOREIGN KEY (idTipoCliente) REFERENCES tipoCliente (id)
ON DELETE RESTRICT ON UPDATE CASCADE)
ENGINE=InnoDB;


gnzsoloyo, gracias por tu respuesta!!

Etiquetas: campo, claves, multiples, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:45.