Java Mysql无法添加或更新子行:外键约束失败
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
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。我的错,没有看那个,我认为它的顺序是正确的