SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL

MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.03.2012, 00:16:12
Lochmuehle Lochmuehle ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 54
Beiträge: 3
Lochmuehle befindet sich auf einem aufstrebenden Ast
result nach update

Hallo zusammen,

stehe grade auf dem Schlauch...
wie bekomme ich nach
UPDATE meinetabelle SET eintrag=eintrag+1 WHERE meinfeld='xyz' LIMIT 1
den neuen Wert von eintrag OHNE einen SELECT im nächstem Auftrag zu schreiben?

Anwendung: mehrere Prozesse greifen auf diesen Wert zu, erhöhen ihn und sollen den neuen Wert verwenden. Prozess A erhöht von 5 auf 6 und soll 6 verwenden, Prozess B erhöht von 6 auf 7 und soll 7 verwenden. Prozess A soll zwischen erhöhen und abfragen nicht von B unterbrochen werden weil dann beide den Wert 7 verwenden würden.

Vielen Dank für eure Hilfe.
Ernest
Mit Zitat antworten
  #2  
Alt 08.03.2012, 12:06:31
derNichtGlaubt derNichtGlaubt ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 59
Beiträge: 45
derNichtGlaubt befindet sich auf einem aufstrebenden Ast
AW: result nach update

wie wär's mit lock table ;-)
Mit Zitat antworten
  #3  
Alt 08.03.2012, 12:17:59
Lochmuehle Lochmuehle ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 54
Beiträge: 3
Lochmuehle befindet sich auf einem aufstrebenden Ast
AW: result nach update (Semaphor)

Zitat:
Zitat von derNichtGlaubt Beitrag anzeigen
wie wär's mit lock table ;-)
Das wäre für mich die zweitbeste Lösung. Ich komme aus der Welt der assembly programmierung. Schon der 80386 kann eine Speicherzelle lesen, ändern, schreiben und das Ergebnis in AX liefern, alles in einem Befehl. Das Thema nennt sich Semaphor. Ich hatte gehoft, mysql würde hier für eine praktische kleine Lösung bieten. Das Locken scheint mir recht aufwendig für so eine einfache standard-Aufgabe. Aber wenn es nicht anders geht...dann muss ich wohl.

Ernest
Mit Zitat antworten
  #4  
Alt 08.03.2012, 12:30:20
derNichtGlaubt derNichtGlaubt ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 59
Beiträge: 45
derNichtGlaubt befindet sich auf einem aufstrebenden Ast
AW: result nach update

Lock table ist nicht aufwendig sondern sollte - eigentlich zwingend - vor jedem Schreibprozess in eine Datenbank erfolgen, eben um Kollisionen verschiedener Prozesse zu vermeiden. Und ob Du nun Lock → Update → Unlock oder Lock → Update → Select → Unlock machst, macht, auf gut österreichisch "das Kraut auch nicht fett".

p.s.: ... das mit der Assemblerprogrammierung, möglichst kurzer, effizienter Code, kann ich nachvollziehen, hab' vor ~30 Jahren auch noch DEC-Tape-Treiber, damals für ne PDP11/34 in Assembler geschrieben ....
Mit Zitat antworten
  #5  
Alt 08.03.2012, 12:47:18
Lochmuehle Lochmuehle ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 54
Beiträge: 3
Lochmuehle befindet sich auf einem aufstrebenden Ast
AW: result nach update

Zitat:
Zitat von derNichtGlaubt Beitrag anzeigen
Lock table ist nicht aufwendig sondern sollte - eigentlich zwingend - vor jedem Schreibprozess in eine Datenbank erfolgen, eben um Kollisionen verschiedener Prozesse zu vermeiden. Und ob Du nun Lock → Update → Unlock oder Lock → Update → Select → Unlock machst, macht, auf gut österreichisch "das Kraut auch nicht fett".

p.s.: ... das mit der Assemblerprogrammierung, möglichst kurzer, effizienter Code, kann ich nachvollziehen, hab' vor ~30 Jahren auch noch DEC-Tape-Treiber, damals für ne PDP11/34 in Assembler geschrieben ....
dann werde ich dran gehen müssen.
Aber, lock vor jedem schreiben? Auch wenn ich Records hinzufüge?
Lock / unlock doch nur wenn ein race-condition beim gleichzeitigem Zugriff auf die gleiche Records auftreten kann? Alles andere soll der mysql engine abfangen (imho).

p.s. mir haben 6502 und Z80 am meisten Spaß gemacht. Spätestens beim Pentium war der Spaß vorbei.
Mit Zitat antworten
  #6  
Alt 08.03.2012, 13:27:46
derNichtGlaubt derNichtGlaubt ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 59
Beiträge: 45
derNichtGlaubt befindet sich auf einem aufstrebenden Ast
AW: result nach update

Zitat:
Zitat von Lochmuehle Beitrag anzeigen
dann werde ich dran gehen müssen.
Aber, lock vor jedem schreiben? Auch wenn ich Records hinzufüge?
Lock / unlock doch nur wenn ein race-condition beim gleichzeitigem Zugriff auf die gleiche Records auftreten kann? Alles andere soll der mysql engine abfangen (imho).
Die Mysql engine verwaltet die Lock-Anfragen(!)

Lock beim Schreiben? IMMER

Ich nutze Lock aber auch beim Abfragen, da ich bereits beim Schreiben(input/update) immer einen Zeitstempel mitschreibe, den ich mir bei der Abfrage immer mitausgeben lasse, d.h. ich weiß immer von welchem Zeitpunkt die Daten, respektive deren Änderung(en) stammen (das kann beim Rückverfolgen sehr praktisch sein...)
Mit Zitat antworten
  #7  
Alt 09.03.2012, 02:05:58
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
Ckaos befindet sich auf einem aufstrebenden Ast
AW: result nach update

Hi

Zitat:
Prozess A soll zwischen erhöhen und abfragen nicht von B unterbrochen werden weil dann beide den Wert 7 verwenden würden.
Ich weis ja nicht was du genau machst, aber ich glaube nicht das du bei nem update/select
da riesen probleme bekommen wirst. Beide frühstücke ich in milisekunden ab.
Desweiteren mal weiter in der Doku schauen
Zitat:
Wenn Sie das Schlüsselwort LOW_PRIORITY angeben, wird die Ausführung von UPDATE verzögert, bis kein Client mehr aus der Tabelle liest.
und dann gibts da ja auch noch
Stored Procedures, Trigger und Views
Also... ran ans lesen ;)

mfg

CKaos
C64 Generation!
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort

Stichworte
update


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
REPLACE anstatt INSERT oder UPDATE? Leyyin MySQL 5 09.08.2010 21:09:38
mysql update und neue daten in eine andere Tabelle eintragen cooperraser MySQL 5 12.10.2008 03:46:35
UPDATE im Block plekz MySQL 1 12.08.2008 12:43:03
UPDATE funktioniert nicht!! Haudenlukas MySQL 2 04.06.2008 11:10:21
UPDATE und SELECT MrLongbaugh MySQL 2 20.07.2006 13:27:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:46:36 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.


© 2001-2018 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt