![]() |
Datenbank: MySQL • Version: 5.6 • Zugriff über: uniDAC
"instead of delete" in MySQL
Hallo,
vielleicht könnt ihr mir bei einem "kleinen" Datenbankproblem helfen. Ich möchte allgemein das Löschen in der MySQL Datenbank unterbinden. Stattdessen soll im Datensatz das Feld "deleted" auf 1 gesetzt werden. In Oracle wäre das kein Problem, da man hier ja instead of delete verwenden kann. Jedoch bietet dies MySQL nicht. Vielleicht wisst ihr eine gute Lösung. Danke! |
AW: "instead of delete" in MySQL
Baue Dir eine Funktion/Procedure über die du alle SQLs absetzt. Und wenn da ein DELETE verwendet wird dann baust du dir selber ein Update-Statement um delted auf true/1 zu setzen.
Alternativ kannst Du dem SQL-Benutzer die rechte nehmen DELTE auszuführen und schreibst die Programme um das sie anstelle von DELETE ein UPDATE durchführen. |
AW: "instead of delete" in MySQL
Machs mit einem Trigger.
|
AW: "instead of delete" in MySQL
Ich weiß nicht, ob das noch aktuell ist, aber es war glaub ich so oder ähnlich:
- Before Delete Trigger, der absichtlich einen Fehler produziert. Damit ist das Löschen verhindert. - After Delete Trigger, den gewünschten Wert ändern, also Update (oder doch löschen und mit geänderten Werten wieder einfügen) |
AW: "instead of delete" in MySQL
Zitat:
|
AW: "instead of delete" in MySQL
Also ich meine, man kann das Löschen selbst im Before Delete nicht verhinden, deswegen "provoziert" man den Fehler, z.B.
Code:
und verhindert damit eben zunächst das Löschen. WEnn man dann noch geänderte Werte braucht, dann mittels AfteDelete ...
Select [SpaltenNamenDenEsNICHTgibt] from mytable
|
AW: "instead of delete" in MySQL
|
AW: "instead of delete" in MySQL
Und Du bist sicher, dass es dort um MySQL geht? Die Syntax sieht mir eher nach IB/FB aus.
|
AW: "instead of delete" in MySQL
Zitat:
|
AW: "instead of delete" in MySQL
kann man nicht vor dem Löschen eine Kopie des Datensatzes mittels Trigger anlegen? Hierbei muss man natürlich auf Unique-Keys achten...
Je nachdem, was überhaupt wirklich gewollt ist, wäre es auch möglich, den Datensatz in eine "Archiv-Tabelle" zu verschieben/kopieren... Dazu noch eine Information, wer und wann den Datensatz gelöscht hat usw. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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