AGB  ·  Datenschutz  ·  Impressum  







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

Datensatz Sperre MySQL

Ein Thema von KlausV · begonnen am 6. Dez 2022 · letzter Beitrag vom 9. Mai 2023
Antwort Antwort
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#1

AW: Datensatz Sperre MySQL

  Alt 8. Mai 2023, 09:11
Siehe hier:
https://docwiki.embarcadero.com/RADS...es_Are_Applied

UpdateMode steuert, wie die WHERE Klausel des Update-Statements erzeugt wird. Wenn das Updatestatement keine Sätzte ändert, wird diese Fehlermeldung ausgegeben (weil Daten zwischenzeitlich geändert). Die Änderung kann unbeabsichtigt auch von dir herbeigeführt worden sein. TRIGGER wie Delphi.Narium schreibt, oder Runden von Floats uvm. Und klar dass bei UpdateKeyOnly der Fehgler nicht mehr kommt, weil viele Feldinhalte da von der prüfung ausgenommen sind.

Sieh dir die SQL Update Statements im Profiler oder trace an und beachte die WHERE Klausel.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#2

AW: Datensatz Sperre MySQL

  Alt 8. Mai 2023, 09:35
upWhereKeyOnly hat den Vorteil, dass Fehler nur bei (durch andere User verursachte) Änderungen an Schlüsselwerten auftreten. Hat den Nachteil, dass bei unveränderten Schlüsseln ggfls. zwischenzeitlich durchgeführte Änderungen an Nichtschlüsselwerten gnadenlos überschrieben werden.

Die Frage ist also: Was will man hier genau erreichen?

Vor dem Speichern eine absolut exakte Prüfung auf Änderungen oder reicht es, wenn man "den richtigen Datensatz erwischt". Frei nach dem Motto: Die letzte Änderung gewinnt?

Geändert von Delphi.Narium ( 8. Mai 2023 um 09:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#3

AW: Datensatz Sperre MySQL

  Alt 8. Mai 2023, 09:40
UpdateKeyOnly wird in der Regel auch viel schneller sein, weil es da Indices drauf gibt, andernfalls hast du im WHERE ja Felder, die uU einen FullTableScan erfordern. Aber das ist jetzt ein anderes Thema.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 16:23 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