AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP/MySQL] - commit klappt nicht

Ein Thema von fkerber · begonnen am 11. Jul 2010 · letzter Beitrag vom 11. Jul 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#1

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:14
Hi,

hmm, gibt es da wirklich keine andere Möglichkeit?
Wenn ich die Doku richtig lese, habe ich ja nur die Möglichkeit, die komplette Tabelle zu locken.

Das ist ja doch schon deutlich "härter", als im Rahmen einer TA, die ja deutlich feinkörniger arbeiten kann...

@Markus:
last_insert_id funktioniert nur bei auto_inc Feldern und (wie der Name doch vermuten lässt ) nur bei Inserts - zumindest laut Doku.
Außerdem brauche ich auch nicht die id, sondern ein anderes Feld.


Liebe Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:19
Dann frag halt die Updatebedingung im Select ab
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:20
Hi!

Wie meinst du?
In welchem Select soll ich was fragen?


Liebe Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:23
Select Active from course_registrations WHERE <Bedingung des Updatebefehls>;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:28
Hi!

Das ist doch exakt das, was ich oben tue?!
Nur genau das funktioniert ja nicht.
Oder zumindest führt es dazu, dass die Transaktion failed und dann ein rollback macht.

@alcaeus:
Ok, "schade"
Und es gibt auch keinen feinkörnigeren Lock als gleich die ganze Tabelle?
Den finalen Wert hier auszugeben, ist leider keine Option an dieser Stelle. Ich muss gezielt dieses Update reflektieren.

Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:30
Ist es denn sehr wahrscheinlich, dass jemand anderes genau diesen Satz gleichzeitig updatet?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:32
Hi!

In der Vergangenheit hat sich gezeigt, dass Nutzer dazu neigen, Links mit Doppelklicks auszuführen und da sind schon komische Konstellationen zustande gekommen.
Ich kann nicht genau sagen, ob es damit zu lösen ist, aber ich will es so fehlerfrei wie irgend möglich machen.


Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:47
Und es gibt auch keinen feinkörnigeren Lock als gleich die ganze Tabelle?
Habs mir gerade nochmal angesehn: nein. Row-Level-Locks werden nur von InnoDB unterstuetzt, wenn du dich auf das Locking der DB verlaesst.
Bei READ gibt es die Moeglichkeit, so genannte "non-conflicting inserts" zu erlauben, write-Locks gelten aber immer fuer die ganze Tabelle. Da du hier aber eine relativ kurze und unkritische Critical Section hast, duerfte ein Table-Lock erst bei hoher Last auffallen. Du hast schliesslich keine Key-Updates, und wenn die Where-Bedingung von Update und Select als gesamter Key vorhanden sind, gibt es da wirklich keine Performance-Probleme.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:50
Hi,

Habs mir gerade nochmal angesehn: nein. Row-Level-Locks werden nur von InnoDB unterstuetzt, wenn du dich auf das Locking der DB verlaesst.
danke für deine Mühe. Es ist ne InnoDB, aber ich vermute, deine Aussage sagt, das ist nur was DB-internes, was ich von außen nicht anleiern kann?


Liebe Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

AW: [PHP/MySQL] - commit klappt nicht

  Alt 11. Jul 2010, 21:24
Moin,

also, wenn du einen Update und anschliessenden Select machst und nicht willst, dass da ein anderer Update-Prozess dazwischenkommt, dann musst du definitiv mit Locks arbeiten. Transaktionen sind nur fuer Inserts und Commits, und ohne Locks kann dir ein anderer Update-Prozess dazwischenfunken.
Je nach Anwendungsfall ist es aber besser, den finalen Wert anzuzeigen, also inkl. eines eventuellen zwischenzeitlichen Updates.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz