Ich habe die SQLite-Dokumentation gelesen und auch Code referenziert, den ich vorher geschrieben habe, aber ich bin anscheinend nicht in der Lage, eine definitive Antwort auf etwas zu finden, was ich mir als eine ziemlich einfache Frage vorstelle.Wie werden Transaktionen in SQLite partitioniert/isoliert?
Ich möchte viele (separate) kompilierte Anweisungen innerhalb einer Transaktion ausführen, aber untergeordnete Threads können auch Transaktionen erstellen oder Anweisungen gleichzeitig ausführen, und ich möchte nicht, dass sie in diese bestimmte Transaktion einbezogen werden. Momentan habe ich ein einzelnes Datenbank-Handle, das ich zwischen allen Threads teile.
Also, meine Frage ist,
1) .. ist es besser, im Allgemeinen um Transaktionen eine Art von Semaphore haben sie mit anderen Anweisungen wird ausgeführt gegen einen Datenbank-Handle kollidieren/sammeln nicht zu gewährleisten. Ich marschiere bereits, um Probleme mit Multithread-Problemen mit SQLite zu verhindern (obwohl es mit WAL jetzt sehr schwierig ist, es überhaupt zu verunsichern).
2) .. oder wird erwartet, dass Sie mehrere Datenbankverbindungen öffnen und die Transaktionen pro Datenbankverbindung starten/festschreiben, wenn sie gleichzeitig ausgeführt werden?
Ah Entschuldigung, ich war auch nicht in der Lage, wie es als ein Duplikat markiert wurde. Werde das jetzt tun. Vielen Dank. –