Foreign Keys
Publicado por Ignacio (1 intervención) el 29/05/2010 01:30:25
He aqui mi problema: tengo que hacer 2 tablas para un catalogo.
La primera de ellas MARCA deberia ser algo asi:
CREATE TABLE `marcas` (
`idmarcas` int(11) NOT NULL AUTO_INCREMENT,
`descripcion` varchar(45) DEFAULT '',
PRIMARY KEY (`idmarcas`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
La segunda Modelos:
CREATE TABLE IF NOT EXISTS `catalogo`.`modelos` (
`idmodelos` INT NOT NULL AUTO_INCREMENT ,
`descripcion` VARCHAR(45) NULL ,
`id_marcas` VARCHAR(45) NULL ,
PRIMARY KEY (`idmodelos`) ,
INDEX `id_marcas` (`id_marcas` ASC) ,
CONSTRAINT `id_marcas`
FOREIGN KEY (`id_marcas` )
REFERENCES `catalogo`.`marcas` (`descripcion` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Pero cuando quiero crear esta segunda no me lo permite. Probe hacer que marcas.descripcion sea un PK pero tampoco me funciona, alguien puede decirme porque? La tercera tabla PRODUCTOS deberia tener dos FK id_marcas e id_modelos pero hasta no resolver este inconveniente no puedo continuar.
Muchas gracias porque cualquier ayuda que me puedan dar.
La primera de ellas MARCA deberia ser algo asi:
CREATE TABLE `marcas` (
`idmarcas` int(11) NOT NULL AUTO_INCREMENT,
`descripcion` varchar(45) DEFAULT '',
PRIMARY KEY (`idmarcas`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
La segunda Modelos:
CREATE TABLE IF NOT EXISTS `catalogo`.`modelos` (
`idmodelos` INT NOT NULL AUTO_INCREMENT ,
`descripcion` VARCHAR(45) NULL ,
`id_marcas` VARCHAR(45) NULL ,
PRIMARY KEY (`idmodelos`) ,
INDEX `id_marcas` (`id_marcas` ASC) ,
CONSTRAINT `id_marcas`
FOREIGN KEY (`id_marcas` )
REFERENCES `catalogo`.`marcas` (`descripcion` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Pero cuando quiero crear esta segunda no me lo permite. Probe hacer que marcas.descripcion sea un PK pero tampoco me funciona, alguien puede decirme porque? La tercera tabla PRODUCTOS deberia tener dos FK id_marcas e id_modelos pero hasta no resolver este inconveniente no puedo continuar.
Muchas gracias porque cualquier ayuda que me puedan dar.
Valora esta pregunta
0