Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

MySQL: UPDATE mit SELECT verbinden?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Daniela
PostRank 4
PostRank 4
Beiträge: 113
Registriert: 13.09.2004, 20:09
Wohnort: Hamburg

Beitrag von Daniela » 12.11.2005, 16:54

Hallo,

ich habe eine SELECT über das ich die id des Datensatzes herausbekomme mit dem ich nun gleich arbeite. Nun möchte ich in der Datenbank auch vermerken, dass dieser Wert bearebitet wird und ein Feld von 0 auf 1 setzen. Damit verhindere ich dass eine weitere Instanz des Scripts nochmal den selben Datensatz bearbeitet.

Kann ich das irgendwie in die SELECT-Abfrage einbauen oder muss ich dazu wirklich ein extra Query ausführen?

Liebe Grüße,
Daniela

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


innuendo
PostRank 8
PostRank 8
Beiträge: 776
Registriert: 13.06.2003, 14:18
Wohnort: Linz/OÖ

Beitrag von innuendo » 12.11.2005, 22:05

Hallo Daniela,

es kommt darauf an, welche MySQL Version du benützt. Im Normalfall ist es sinnvoller die Tabelle zu locken - einfach sauber. MySQL dürfte dies aber erst mit der letzten Version unterstützen, oder auch schon mit der 4er.

Sieh dir mal auf MySQL.com den Thread über das Locken von Tabellen an:
https://dev.mysql.com/doc/refman/5.0/en ... ables.html

Die dirty-Variante wäre hier beschrieben:
https://www.delphipraxis.net/topic45576.html

lg,
Innuendo

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 12.11.2005, 22:13

Ein Tablelock, um eine Zeile zu bearbeiten? Gruselige Idee. Aber ich ahne - wahrscheinlich unterstützt das 'gute und beliebte mySql' nichts besseres.

Daniela
PostRank 4
PostRank 4
Beiträge: 113
Registriert: 13.09.2004, 20:09
Wohnort: Hamburg

Beitrag von Daniela » 12.11.2005, 22:25

Komplette Table zu locken ist ja Müll - ich will weiterhin mit der Tabelle arbeiten können. Es geht nur drum die eine Zeile mit möglichst wenig Aufwand zu markieren um sie bei weiteren Abfragen auschliessen zu können.

AnjaK
PostRank 9
PostRank 9
Beiträge: 2614
Registriert: 11.10.2004, 10:29
Wohnort: Riddermark

Beitrag von AnjaK » 12.11.2005, 22:42

was hindert dich daran eine zweite Update-Query hinterherzuschicken?
Selbst wenn du die Anfragen verschachtelst, hast du physikalisch immernoch zwei Datenbankabfragen, also kannst du gleich zwei machen. Macht doch nichts aus, die 2 Mikrosekunden merkst du garantiert nicht ;)

Um zu verhindern, dass DOCH jemand in dieser Mikrosekunden den gleichen Datensatz bearbeitet, mach das UPDATE zuerst und selectiere anschließend die gelockte "mysql_insert_id".
Penisneid hat einen Namen: WebLiga | Los! Artikel schreiben! | Onlineshop hier anmelden! | Staatl. geprüfte Boardbösewichtin | Keine PNs bitte, bitte nur email.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag