Could not enter data retval 2: Cannot add or update a child row: a foreign key constraint fails (`recepten`.`benodigdheid`, CONSTRAINT `benodigdheid_ibfk_1` FOREIGN KEY (`ID`) REFERENCES `gerecht` (`ID`))
创建脚本:
CREATE TABLE Gerecht
(ID INT(3) AUTO_INCREMENT NOT NULL,
gerechtnaam VARCHAR(35) NOT NULL,
personen NUMERIC(2) NOT NULL,
categorie VARCHAR(25) NOT NULL,
bereidingstijd NUMERIC(3) NOT NULL,
bereidingswijze TEXT NOT NULL,
plaatje VARCHAR(250) NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE Benodigdheid
(IDbenodigdheid INT(3) AUTO_INCREMENT NOT NULL,
ID INT(3) NOT NULL,
benodigdheden VARCHAR(35) NOT NULL,
PRIMARY KEY (IDbenodigdheid, benodigdheden),
FOREIGN KEY (ID) REFERENCES Gerecht (ID)
);
CREATE TABLE Eenheid
(eenheidnaam VARCHAR(12) NOT NULL,
PRIMARY KEY (eenheidnaam)
);
CREATE TABLE Product
(ingredientnaam VARCHAR(35) NOT NULL,
eenheidnaam VARCHAR(12),
PRIMARY KEY (ingredientnaam),
FOREIGN KEY (eenheidnaam) REFERENCES Eenheid (eenheidnaam)
);
CREATE TABLE Ingredient
(IDingredient INT(3) AUTO_INCREMENT NOT NULL,
ID INT(3) NOT NULL,
ingredientnaam VARCHAR(35) NOT NULL,
hoeveelheid NUMERIC(4) NOT NULL,
PRIMARY KEY (IDingredient, ingredientnaam),
FOREIGN KEY (ID) REFERENCES Gerecht (ID),
FOREIGN KEY (ingredientnaam) REFERENCES Product (ingredientnaam)
);
php代码插入数据:
$sql1="INSERT INTO Gerecht ( gerechtnaam, personen, categorie, bereidingstijd, bereidingswijze, plaatje)
VALUES ('$gerechtnaam','$personen','$categorie','$bereidingstijd','$bereidingswijze','$plaatje')";
$IDGerecht=mysql_insert_id();
$sql2="INSERT INTO Benodigdheid (ID, benodigdheden)
VALUES ($IDGerecht, '$benodigdheden')";
$sql3="INSERT INTO Product (ingredientnaam, eenheidnaam)
VALUES ('$ingredientnaam1', '$eenheid1')";
$sql4="INSERT INTO Ingredient (ID, ingredientnaam, hoeveelheid)
VALUES ($IDGerecht,'$ingredientnaam1', '$hoeveelheid1')";
$retval1 = mysqli_query($db, $sql1 );
if(! $retval1 )
{
die('Could not enter data retval 1: ' . mysqli_error($db));
}
echo "Entered data retval1 successfully\n</br>";
$retval2 = mysqli_query($db, $sql2 );
if(! $retval2 )
{
die('Could not enter data retval 2: ' . mysqli_error($db));
}
echo "Entered data retval2 successfully\n</br>";
$retval3 = mysqli_query($db, $sql3 );
if(! $retval3 )
{
die('Could not enter data retval 3: ' . mysqli_error($db));
}
echo "Entered data retval3 successfully\n</br>";
$retval4 = mysqli_query($db, $sql4 );
if(! $retval4 )
{
die('Could not enter data retval 4: ' . mysqli_error($db));
}
echo "Entered data retval4 successfully\n</br>";