mikrocontroller.net

Forum: PC-Programmierung MySQL und Transactions


Autor: Fetzenstein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!

zum Schreiben von Daten gibts bei MySQL ja Transactions, mit denen 
mehrere Schreiboperationen zu einer atomaren ausgeführten 
Schreiboperationen zusammengefasst - oder im Fehlerfall verworfen 
werden.

Gibt's für's Lesen eigentlich auch sowas?

D.h. angenommen, ich hab Daten, die liegen in 2 Tabellen. Ich würde nun 
gerne meine MYSQL-Abfragen atomar ausführen, d.h. zwischen query 1 und 
query 2 darf niemand was in eine der beide Tabellen reinschreiben, weil 
sonst meine Ergebnisse inkonsistent werden.

Ich verwende übrigens JDO + Datanucleus + MySQL unter Java.

Grüße,
Fetz von Fetzenstein

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn jemand in die Tabellen mit einer Transaktion reinschreibt dann 
kannst du sie im normalfall eh nicht lesen. Ausser die liest mit 
"uncommitted read"

Autor: Claudio H. (bastelfinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst das "Transaction-Level" setzen, damit hast du 
Einflussmöglichkeit.

Schreib mal mehr zu deiner Architektur, dann kann man dir noch besser 
helfen.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Transaktionen gibt es auch fürs lesen, wieso auch nicht, je nach 
Transaktionsmodus kreigst du dan erstmal vom Schreiben anderer nix mit. 
Nur kannst du das ganze nicht "verwerfen" oder "annehmen" das ist auch 
nur beim schreiben sinnvoll.
Am Einfachsten geht es allerdings wenn du von vornherein deine Daten 
zusammen abfragst (z.B. über einen Join).
JDO sollte das aber (eigentlich) von selbst handhaben.

Autor: Claudio H. (bastelfinger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir das Interface "javax.jdo.Transaction" an, da kannst du alles 
konfigurieren.

Autor: Fetzenstein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läubi .. schrieb:
> Transaktionen gibt es auch fürs lesen, wieso auch nicht, je nach
> Transaktionsmodus kreigst du dan erstmal vom Schreiben anderer nix mit.
> Nur kannst du das ganze nicht "verwerfen" oder "annehmen" das ist auch
> nur beim schreiben sinnvoll.
> Am Einfachsten geht es allerdings wenn du von vornherein deine Daten
> zusammen abfragst (z.B. über einen Join).
> JDO sollte das aber (eigentlich) von selbst handhaben.

Ich hab jetzt endlich rausgefunden wie man richtige SQL-Abfragen mit JDO 
ausführt und das funktioniert sogar.

Jetzt kann ich ganz gewohnt meine Tables joinen und alles in einem 
Rutsch erledigen ...

Danke für den Denkanstoß!

Grüße,
Fetz

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.