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 :)
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.)