Ich habe eine Transaktion, wo wir eine Zeile der Tabelle foo
und dann eine Zeile der Tabelle bar
einfügen. Dies stellt sicher, dass wir entweder beide oder beide Zeilen schreiben. Das Problem dabei ist bar
hat einen Fremdschlüssel in foo
. Da wir die id
von foo
zum Zeitpunkt der bar
einfügen nicht kennen, scheitert dies die Fremdschlüsseleinschränkung.Wie können zwei Zeilen atomar geschrieben werden, wenn eine Zeile einen Fremdschlüssel in den anderen hat?
Früher habe ich verwendet Tools wie SQLAlchemy, wenn Python-Backends zu schreiben, dass die Fähigkeit der Spülung eine Sitzung schließen, bevor die Transaktion festgeschrieben wird - dies ermöglicht es dem Benutzer die id
von foo
abzuleiten und sie zusammen mit dem INSERT
passieren in bar
, bevor Sie tatsächlich etwas schreiben.
Meine Frage ist, im Kontext von JDBC und seiner Clojure Wrapper, wie kann dies getan werden?