OBS/Adminhilfe/MySQL Tipps: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Für diese Seite wurde eine Zugriffsbeschränkung eingerichtet. Falls du diese Nachricht siehst, bist du nicht berechtigt, diese Seite einzusehen.
(Die Seite wurde neu angelegt: „=MySQL Tipps= ==MySQL DELETE Statements== Wenn man ein DELETE Statement braucht, in dem man einen JOIN auf auf die Tabelle benötigt, aus welcher man die Daten …“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{ZugriffOBS}}
[[Kategorie:Adminhilfe]]
=MySQL Tipps=
=MySQL Tipps=



Version vom 8. August 2014, 09:45 Uhr

Dies ist eine zugriffsgeschützte Seite.


Admin-Hilfe

OBS-Administration / Installation
kundenspezifische Anpassungen
OBS Protokolle
Shop-Administration


MySQL Tipps

MySQL DELETE Statements

Wenn man ein DELETE Statement braucht, in dem man einen JOIN auf auf die Tabelle benötigt, aus welcher man die Daten löschen möchte, gibt MySQL einen Fehler aus, dass man nicht auf die Tabelle joinen darf, aus welcher man löschen möchte.
Als Beispiel, doppelte Warengruppen aus der Wortmann Artikelpflege löschen:

DELETE
FROM P_WGR
WHERE EXISTS (
  SELECT sys_uid 
  FROM P_WGR AS DUP 
  WHERE P_WGR.hwgr = DUP.hwgr 
  AND P_WGR.wgrname = DUP.wgrname 
  AND P_WGR.sys_uid <> DUP.sys_uid 
  AND liefnr = '700758') 
ORDER BY hwgr;


So lässt sich dieses aber umgehen:

DELETE
FROM p_wgr 
USING p_wgr, p_wgr AS DUP
WHERE p_wgr.sys_uid > DUP.sys_uid 
AND p_wgr.hwgr = DUP.hwgr 
AND p_wgr.liefnr = '700758'