Datensatz von einer Tabelle in eine andere verschieben
Kalle_B
- datenbank
Hallöle,
gibt es für MySQL ein Kommando, einen Datensatz von einer Tabelle in eine andere (Papierkorb) zu verschieben?
So könnte man gelöschte Sätze erstmal loswerden, aber im Fehlerfall doch noch recherchieren.
LG Kalle
echo $begrüßung;
gibt es für MySQL ein Kommando, einen Datensatz von einer Tabelle in eine andere (Papierkorb) zu verschieben?
Nein, aber es gibt INSERT ... SELECT und DELETE.
echo "$verabschiedung $name";
Hello,
So könnte man gelöschte Sätze erstmal loswerden, aber im Fehlerfall doch noch recherchieren.
Man könnte beim "Löschen" auch auf das physische Löschen verzichten, und nur ein Flag oder einen Matchcode setzen (Datum, User). Dann müsste allerdings die Applikation Rücksicht darauf nehmen.
Das könnte man dann am besten regeln, indem überhaupt nicht mehr direkt auf Select, Insert, Update und Delete zugegriffen wird, sondern man sich dafür stored Procedures baut.
Diese wären dann auch in der Lage, vertikale Rechtevergabe zu berücksichtigen. So könnte man z.B. festlegen, dass nur noch der User, dem der Datensatz "gehört", ihn auch ändern darf, oder nur eien bestimmte Gruppe dieses Recht hat, oder oder oder...
Das sofortige Löschen von (indizierten) Datensätzen ist ohnehin nicht so günstig für die Performance der Datenbank. Es ist besser, man besorgt das gesammelt in Schwachlastzeiten. Und dafür wäre doch die Lösung mit der Deleted-Spalte ganz gut geeignet.
Ein harzliches Glückauf
Tom vom Berg
Mahlzeit Tom,
Das sofortige Löschen von (indizierten) Datensätzen ist ohnehin nicht so günstig für die Performance der Datenbank. Es ist besser, man besorgt das gesammelt in Schwachlastzeiten. Und dafür wäre doch die Lösung mit der Deleted-Spalte ganz gut geeignet.
Abgesehen davon ist es - insbesonders bei Datenbanksystem ohne FOREIGN-KEY-Constraints - keine gute Idee, Datensätze, bei denen zumindest logische Abhängigkeiten zu anderen Datensätzen bestehen, einfach zu löschen - Stichwort: referenzielle Integrität.
Ich nutze in derartigen Fällen einen "Gelöscht-Zeitstempel", so dass ich - über entsprechend gekapselte Abfragen bzw. stored Procedures - relativ einfach alle nicht gelöschten Datensätze bekomme, jederzeit nachschauen kann, wann der Datensatz gelöscht wurde und ihn auch wiederaufleben lassen kann, wenn es nötig ist.
MfG,
EKKi