# Foreign Keys

**URL:** <https://forum.shopware.com/t/foreign-keys/50197>\
**Category:** Administration\
**Created:** [29. Dezember 2017 um 16:53 UTC](https://forum.shopware.com/t/foreign-keys/50197 "2017-12-29T16:53:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [29. Dezember 2017 um 16:53 UTC](https://forum.shopware.com/t/foreign-keys/50197/1 "2017-12-29T16:53:16Z")

</div>

Hi, ich habe eine Frage zu den Foreign Keys. Weil phpmyadmin mit der Reparatur-SQL die max execution time übertrifft habe ich jetzt mit der Konsole die Reparatur-SQL in die Datenbank eingespielt. Der resultierende&nbsp;Fehler lautet wie folgt

```
ERROR 1452 (23000) at line 593: Cannot add or update a child row: a foreign key constraint fails (`XXXXXX`.`XXXXXX`, CONSTRAINT `xxxxxx` FOREIGN KEY (`detailID`) REFERENCES `s_order_details` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION)

```

Dazu kann ich aber keine Hilfe-SQL-Befehl in der Anleitung finden:&nbsp;[http://community.shopware.com/Foreign-Keys-reparieren\_detail\_954.html](http://community.shopware.com/Foreign-Keys-reparieren_detail_954.html)

**Ich bin für jede Hilfe dankbar**. Ich wäre auch dankbar wenn mit jemand erklären könnte, warum ausgerechnet Shopware bei mir Foreign Keys Probleme macht. Das es sowas überhaupt gibt weiss ich erst seit Shopware. Ich kann es nicht hinnehmen, dass der Hoster oder eine Standarddatenbank der Fehlerverursacher sein soll. Das sind auch diejenigen, die mir am wenigsten helfen können weil sie nicht wissen welche Art von Foreign Keys da kaputt sind weil sie die Shopsoftware ja auch nicht erfunden haben.

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [29. Dezember 2017 um 18:20 UTC](https://forum.shopware.com/t/foreign-keys/50197/2 "2017-12-29T18:20:03Z")

</div>

Die Foreign-Keys kannst du dir schnell verhauen, indem du eine Tabelle kopierst und damit auch die Foreign Keys. Da muss man etwas aufpassen, dass die Fremdschlüssel korrekt bleiben. Gerne hauen auch Plugin-Installationen die Foreign-Keys durcheinander. Shopware selbst arbeitet noch relativ wenig mit Foreign-Keys, da gibt es zahlreiche andere Beispiele die das deutlich mehr machen. Die Foreign Keys sollen ja Datenmüll verhindern und erkenntlich machen, wie die Daten miteinander verknüpft sind. Ein Problem kann also auch entstehen, wenn es Einträge gibt deren verknüpfte Inhalte nicht mehr existieren.

Das SQL kannst du dir nach dem Beispiel zusammenstellen, unten im Wiki sind ja schon ein paar. Wenn es bei dir die s\_order\_details ist, musst du das Querry anpassen:

```
DELETE ca
FROM `s_order_details_attributes`oda 
LEFT JOIN s_order_details od
ON od.id = oda.detailsID 
WHERE od.id IS NULL

```

Ob die Spalte nun wirklich “detailsID” heißt in der s\_order\_details\_attributes&nbsp;- oder wie die wirklich heißt - müsstest du nachsehen, hab gerade keine Datenbank zur Hand.

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [2. Januar 2018 um 12:07 UTC](https://forum.shopware.com/t/foreign-keys/50197/3 "2018-01-02T12:07:54Z")

</div>

Lösung:&nbsp;

```
DELETE ca -- SELECT ca.*
FROM `s_order_details_attributes` ca
LEFT JOIN s_order_details c
ON c.id = ca.detailID
WHERE c.id IS NULL

```

&nbsp;
