Java Mysql无法添加或更新子行:外键约束失败

Java Mysql无法添加或更新子行:外键约束失败,java,netbeans,Java,Netbeans,Mysql表 这是我向数据库插入数据的查询 public void voegSpelerToe(Speler speler, String spelNaam) { PreparedStatement invoerSpeler; Speler huidigeSpeler = null; try { Connection connection = PersistentieController.getInstance().getConnection

Mysql表

这是我向数据库插入数据的查询

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();
    }


}
所有东西都有一个值,所以我没有空例外

但当我想保存数据时,我会出现以下错误:

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表中,但外键有问题

如表spel:

纳姆:游戏12 安塔尔特斯普伦德斯:2 斯佩勒表:

纳姆:玩家1 克莱尔:绿色 部门:2 安塔尔兹尔弗斯图肯:10

斯佩尔纳姆:游戏12 Spel_naam必须与表Spel中的naam相同


它告诉您它希望Spel_Naam的内容存在于spels Naam属性的某一行中,但它不存在

为了完全弄清楚这个问题,我还需要看看您将在哪里插入spel

但在您提供的示例输入中

naam: Game12

Spel_Naam: game12

存在一个问题,因为一个是资本化的,另一个不是。如果这实际上是数据的设置方式,那么这可能是您的问题。但似乎您的想法是正确的,您需要先插入naam,然后插入Spel_naam。

Okey似乎更新了表Speler,然后是Spel。现在我更新第一个Spel和Speler。我的错,没有看那个,我认为它的顺序是正确的