[ Foro de SQL (y MySQL) ]

error 1452 en mysql

26-Mar-2017 17:58
Invitado (aprendiz)
1 Respuestas

Buenos Dias si me podrian ayudar estoy aprendiendo sql y tengo  este error que me aparece en la consola

Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails <'practica'. <result 2 when explaining filename `sql-d08_1`> CONSTRAINT `Vendedor_ibfk_1` FOREIGN KEY (`nombre`) REFERENCES `Venta` (`nombre`) ON DELETE CASCADE ON UPDATE CASCADE>

este es el codigo completo:

DROP DATABASE IF EXISTS Practica;
CREATE DATABASE Practica;
USE Practica;

CREATE TABLE Vendedor(Cod_Vendedor INT NOT NULL AUTO_INCREMENT,
                     nombre VARCHAR(30) NOT NULL,
                     apellido VARCHAR(30) NOT NULL,
                     Nro_Ventas INT NOT NULL, fecha DATE NOT NULL,
                     sueldo DOUBLE NOT NULL, sexo VARCHAR(10) NOT NULL,
                     PRIMARY KEY(Cod_Vendedor),
                     KEY nombre (nombre)) ENGINE = INNODB;

DESCRIBE Vendedor;


INSERT INTO Vendedor VALUES (1,'LOLA','PRIETO', 5,'2017-01-10','500','Femenino'),
                           (2,'Josue','Fernandes', 7,'2017-01-12','300','Masculino'),
                           (3,'Lourdes','Silva', 9,'2017-01-15','600','Femenino');



CREATE TABLE Venta(Cod_Venta INT NOT NULL AUTO_INCREMENT,
                  nombre VARCHAR(30) NOT NULL,
                  producto VARCHAR(30) NOT NULL,
                  descripcion VARCHAR(30) NOT NULL,
  precio FLOAT NOT NULL,
                  fecha DATE NOT NULL,
                  PRIMARY KEY(Cod_Venta),
  KEY nombre (nombre)) ENGINE = INNODB;

DESCRIBE Venta;




CREATE TABLE Vendedor_Venta (Cod_Vendedor INT NOT NULL, Cod_Venta INT NOT NULL,
CONSTRAINT fk_Cod_Vendedor FOREIGN KEY (Cod_Vendedor)
REFERENCES Practica.Vendedor (Cod_Vendedor)
    ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_Cod_Venta FOREIGN KEY (Cod_Venta)
REFERENCES Practica.Venta (Cod_Venta)
ON DELETE CASCADE ON UPDATE CASCADE)ENGINE = InnoDB;


DESCRIBE Vendedor_Venta;


ALTER TABLE Vendedor

ADD CONSTRAINT `Vendedor_ibfk_1` FOREIGN KEY (`nombre`) REFERENCES `Venta` (`nombre`) ON DELETE CASCADE ON UPDATE CASCADE;


DESCRIBE Vendedor;

se lo agradeceria de antemano la ayuda :)


02-Apr-2017 12:29
Nacho Cabanes (+32)

El detalle importante es "a foreign key constraint fails ". Si algo es una clave ajena, no podrás añadir datos que dependan de ella hasta que ésta tenga valor.

Por ejemplo, si tienes una tabla "clientes" y el código de ciudad fuera una clave ajena que apunta a una tabla de "ciudades", no podrías añadir un cliente que viva en la ciudad "a", a no ser que en la tabla de ciudades se especifique previamente cuál es esa ciudad.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)