1
MySQL表 mysqltablesMySQL不能添加或更新子行,外键约束失败
这是我的查询将数据插入到数据库。
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();
}
}
一切都有价值,所以我没有nullexeptions。
但是,当我要保存的数据我得到这个错误:
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:
- NAAM:Game12
- aantalTeSPelenRondes:2
表Speler:
- NAAM:PLAYER1
- kleur:绿色
- 部门:2
aantalZilverStukken:10
Spel_Naam:game12 Spel_naam必须是相同的NAAM表的SpeI
Okey似乎更新表格Speler然后Spel。现在我更新第一个Spel和Speler。我的错,没有看到,我认为它是在正确的顺序 – user3639969