Ich habe einen Fehler beim Versuch, einige Zeilen in einer Tabelle einzufügen. Es ist ein Assoziationsproblem zwischen meinen Entitäten, aber ich weiß nicht, wie ich es lösen soll.Fremdschlüssel Einschränkung beim Einfügen von Zeilen in Tabelle
banque_statistiquecolle Tabelle ist leer und ich kann keine Zeile einfügen, banque_colle enthält einige Zeilen. Zeilen, die ich einfügen möchte, sind mit diesen banque_colle-Zeilen verknüpft.
Abfrage:
INSERT INTO banque_statistiquecolle (id, colle_id, effectif, moyenne, mediane, note100, major, minor)
SELECT sc.id, sc.colle_id, sc.effectif, sc.moyenne, sc.mediane, sc.note100, sc.major, sc.minor
FROM statistiquecolle_groupe scg
LEFT JOIN statistiquecolle sc ON sc.id = scg.statistiquecolle_id
WHERE scg.groupe_id = 1
AND sc.id NOT IN (SELECT sc1.id
FROM statistiquecolle_groupe scg1
LEFT JOIN statistiquecolle sc1 ON sc1.id = scg1.statistiquecolle_id
WHERE scg1.groupe_id != 1)
den Fehler:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row:
a foreign key constraint fails ('tutotour_tharmo18052017test'.'banque_statistiquecolle',
CONSTRAINT 'FK_5C1250C5F0B40A43' FOREIGN KEY ('colle_id') REFERENCES 'banque_colle' ('id'))
BanqueStatistiqueColle Entity:
/**
* BanqueStatistiqueColle
*
* @ORM\Table(name="banque_statistiquecolle")
* @ORM\Entity
*/
class BanqueStatistiqueColle
{
/**
* @var integer
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="\PACES\BanqueBundle\Entity\BanqueColle")
* @ORM\JoinColumn(name="colle_id", referencedColumnName="id")
*/
private $colle;
{Other properties}
/**
* @ORM\OneToMany(targetEntity="\PACES\BanqueBundle\Entity\BanqueRepartitionColle", mappedBy="idStatColle",
* cascade={"all"})
*/
private $repartitionsColle;
BanqueColle Entity:
/**
* Colle
*
* @ORM\Table(name="banque_colle")
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"colle"="BanqueColle", "colleQC"="BanqueColleQC"})
*/
class BanqueColle
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
{Other properties}
/**
* @ORM\OneToMany(targetEntity="PACES\BanqueBundle\Entity\BanqueStatistiqueColle", mappedBy="colle", cascade={"all"})
*/
protected $statsColle;
Sie könnten damit beginnen, alle sc.colle_id mit banque_colle_id abzugleichen. –