Seite 1 von 1

Befehl rückgängig machen

Verfasst: 30.04.2012 08:02
von dsl-bbc
Hallo,
wie kann ich folgenden SQL-Befehl rückgängig machen?

Code: Alles auswählen

INSERT INTO oxseohistory (OXOBJECTID, OXIDENT, OXSHOPID, OXLANG) VALUES ('bcf96ad6c453da8ca24a157dd1ca3612', MD5('my_old_productlink.php/'), 'oxbaseshop', 0);

Re: Befehl rückgängig machen

Verfasst: 30.04.2012 14:16
von gn#36
Sofern irgend eine der Spalten die du verwendet hast UNIQUE oder PRIMARY KEY o.ä. ist, geht das z.B. so:

Code: Alles auswählen

DELETE FROM oxseohistory WHERE (OXOBJECTID = 'bcf96ad6c453da8ca24a157dd1ca3612', OXIDENT=MD5('my_old_productlink.php/'), OXSHOPID= 'oxbaseshop', OXLANG=0);
Achtung: Wenn keine dieser Tabellenspalten eine eindeutige Zuordnung ermöglicht, dann löscht du mit diesem Befehl eventuell mehr als nur einen Tabelleneintrag, obwohl du nur eine Zeile eingefügt hast. Das ist insbesondere möglich, wenn du noch mehr Spalten in deiner Tabelle hast als die, die du beim Insert berücksichtigt hast. In dem Fall würde ich erst mal mit einem

Code: Alles auswählen

SELECT * FROM oxseohistory WHERE (OXOBJECTID = 'bcf96ad6c453da8ca24a157dd1ca3612', OXIDENT=MD5('my_old_productlink.php/'), OXSHOPID= 'oxbaseshop', OXLANG=0);
nach den Zeilen suchen, die dadurch verändert werden und dann mit weiteren Bedingungen die DELETE Anweisung weiter eingrenzen (Default Werte der anderen Spalten ansehen wenn nicht bekannt ist welche Ergebnisse nun gelöscht werden sollen). Sofern es nicht mehr als die verwendeten Spalten in der Tabelle gibt können zwar auch mehrere Zeilen gelöscht werden, aber die wären dann zumindest vollkommen identisch.

Wenn doch irgend eine der verwendeten Spalten UNIQUE oder PRIMARY KEY o.ä. ist, dann reicht in der WHERE Bedingung die Angabe dieser einen Spalte.