[英]Mysql Cannot add or update a child row: a foreign key constraint fails
mysql表mysqltables
这是我向数据库插入数据的查询。
public void voegSpelerToe(Speler speler, String spelNaam)
{
PreparedStatement invoerSpeler;
Speler huidigeSpeler = null;
try
{
Connection connection = PersistentieController.getInstance().getConnection();
invoerSpeler = connection.prepareStatement("INSERT INTO Speler " + "(naam, kleur, sector, aantalZilverstukken, Spel_naam) " + "VALUES ( ?, ?,?, ?, ?)");
invoerSpeler.setString(1, speler.getNaam());
invoerSpeler.setString(2, speler.getKleur());
invoerSpeler.setInt(3, speler.getSector().getCode());
invoerSpeler.setInt(4,speler.getKrediet());
invoerSpeler.setString(5, spelNaam);
invoerSpeler.executeUpdate();
} catch (SQLException sqlException)
{
sqlException.printStackTrace();
} finally
{
// PersistentieController.getInstance().closeConnection();
}
}
一切都有价值,所以我没有nullexeption。
但是,当我要保存数据时,出现此错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`projecteng62`.`speler`, CONSTRAINT `fk_Speler_Spel1` FOREIGN KEY (`Spel_naam`) REFERENCES `spel` (`naam`) ON DELETE CASCADE ON UPDATE CASCADE)
如何在外键中插入数据。 首先,它将数据保存到表Spel中,然后我需要将数据保存在表Speler中,但是使用外键出现问题。
像表游戏:
表Speler:
aantalZilverStukken:10
Spel_Naam:game12 Spel_naam必须与表Spel中的naam相同
它告诉您,它期望Spel_Naam的内容在spels naam属性的某些行中存在,但不存在。
为了完全弄清问题,我还需要查看您要插入spel的位置。
但是在您提供的示例输入中
naam: Game12
Spel_Naam: game12
存在一个问题,因为一个大写而另一个不大写。 如果这实际上是数据的设置方式,则可能是您的问题。 但是看来您有正确的主意,您需要先插入naam,然后再插入Spel_Naam。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.