2009-04-21 7 views
1

MySQL scheint keine einschränkenden Einschränkungen bis zum Ende einer Transaktion zu haben, die bereits implementiert wurde. Wenn ja, wie kann man Eltern in zwei Kinderakten am besten wechseln? Wenn wir beispielsweise über einige UI-Slots verfügen, in die jeder Benutzer Elemente einfügen kann, sollten die Elemente in den Slots des Benutzers wechseln, da slidid FK in der item-Tabelle ist und in Items ein eindeutiger Index für die Spalten itemId und slotId vorhanden ist Tabelle?Ersetzen von Fremdschlüsselwerten (eindeutig) in zwei Datensätzen

Gibt es eine bessere Möglichkeit als SET FOREIGN_KEY_CHECKS = 0 und drei Updates in einer Transaktion zu verwenden?

[EDIT] SlotId ist nicht nullable und sollte nicht gegeben sein, das Element muss immer in einem Slot sein - also würde das Setzen als Nullwert bedeuten, semantische Korrektheit und wichtige Sicherheitsprüfung aufzugeben, nur um einige Implementierungsdetails einfacher zu machen .

Antwort

0

Ich beschrieb das ähnliche Problem in this post.

Scheint, dass die Spalte NULL 'in der Lage ist, das kleinere Übel, da Sie die Fremdschlüsseleinschränkung in diesem Fall nicht deaktivieren müssen.

1

Null sie aus, wenn die zu aktualisierende Spalte Nullable ist, und dann aktualisieren oder löschen und einfügen.

Verwandte Themen