Erklärung COMMIT/ROLLBACK in Transaktionen

Werbung:
Ja, genau, oder wenn du in einem Shop in einer Tabelle eine Order anlegst und in einer anderen die Positionen. Geht dabei was schief werden beide aufgeräumt, damit es keinerlei "Leichen" gibt.

Wo es mir aber drauf ankam: Wenn der Client an der ganzen Sache beteiligt wäre müsste man dies ja auch im Programm nachbilden (Autocommit). Also INSERT / UPDATE / DELETE ist genug wenn das gesetzt ist und ich wüsste nicht warum ein Client was verschleiern sollte
 
Werbung:
Auch das hängt vom Datenbanksystem ab ;)
In Oracle ist das z.B. standardmäßig ausgeschaltet
Ich rede nicht von Defaults und schon gar nicht von herstellerspezifischen Einstellungen oder System spezifischen Verhalten (Oracle Server kennt kein Autocommit).
Ich rede von einem Standard, einem Quasi Standard (auch nicht im Sinne von z.B. ANSI SQL, der es von sich behauptet, aber von vielen nur unvollständig eingehalten wird).
Einfach davon, was ein gefühlte Normalität ist. Und die ist nach meiner Erfahrung (einzige Ausnahme tatsächlich Oracle) eben die, dass Autocommit erfolgt und zwar vom Client, sch... egal welcher, noch mal, Ausnahme Oracle.

Am Ende ist es doch für den unerfahrenen Anwender vollkommen egal, ob der Server das regelt, oder eben nicht oder der client. Die Erfahrungswelt eines Anfängers ist allermeist, ein Befehl wird sofort persistiert. Autocommit halt.

Und wenn ihr auf Server oder Client kaprizieren wollt, wo bin ich denn, wenn ich mich mit der SSH Console auf dem Server anmelde und dort als Oracle User ein SQLPLUS öffne, ja auf dem Server, aber auch dort bin ich meist in einem Programm, was man meist nichts anderes als ein Client ist. und dort aktiviere ich (auch bei SQL Plus) autocommit oder nicht. IdR nicht, weil es sowieso "Standard" ist.

Und wenn es halt im Client eingestellt wird oder im jeweiligen Client die Default Einstellung ist, dann könnte man als Anfänger auf die Idee kommen, dass es gar nicht anders geht, normal, Standard. Und das meinte ich, als ich von verschleiern sprach. Dieser Effekt ergibt sich aus den Gegebenheiten im DB Client. Im Gegensatz zum Server, der das zwar brav bedient, was der Client will, aber nicht einschränkt.
 
Zurück
Oben