![]() |
Datenbank: Mysql • Version: 5 • Zugriff über: Zeos
Veränderung in der Mysql-Db bemerken udn Mysql-Dump und csv-
Hallo,
wie bekomme ich mit, daß ein Eintrag in der Datenbank geändert wurde. Stored Procedures scheinem mir zu kompliziert, mysql.de ist da nicht wirklich eine Hilfe. Gibt es eigentlich noch eine andere Möglichkeit automatisiert auf eine Veränderung der Datenbank zu reagieren. Wie macht Ihr das? Gruß René |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Dafür eignen sich Trigger sehr gut. Diese werden bei bestimmten Aktionen ( Z.B. Insert) aufgerufen. In ihnen kann man dann auf die Aktion reagieren bzw. sie verhindern oder nur loggen.
|
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Hallo mkinzler,
danke für die Antwort, stimmt es daß Trigger keine Select-Anweisungen zulassen? Sind sie somit für einen SQL-Dump nicht unbrauchbar? Wie könnte so ein Trigger ausehen? Gruß René |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Zitat:
Zitat:
Aber im Allgemeinen interessieren ja auch nur die DML-Statements. |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Hi mkinzler,
ich erstelle also einen Trigger mit:
SQL-Code:
Dieser Trigger soll dann prüfen ob in der Tabelle aa_shopdata ein Eintrag hinzugefügt wurde.
CREATE TRIGGER con_stat BEFORE update ON aa_shopdata
Wie kan ich nun definieren, daß eine aktion erfolgen soll? Z.Bsp. ein Sql-Dump. Gruss René |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Der Trigger prüft nicht, ob was passiert ist, sondern wird aufgerufen wenn etwas passiert ( ein art Callback).
Das von dir genannte Beispiel wird aufgerufen nach dem ein Update gestartet wurde, bevor es wirksam wird. |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Ja das ist richtig. Der Trigger prüft ob ein Eintrag upgedatet werden soll.
Ist es auch möglich nur bei bestimmten Feldern zu reagieren? |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Jein. der Trigger springt immer beim ereignis an, aber du kannst ja innerhalb des Triggers entscheiden was du machst. Wenn die Werte ok sind, machst du einfach garnichts.
|
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Das kannst du im Trigger mittels einer if-Bedingung selber festlegen.
|
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Wie sollte dann so ein Trigger aussehen?
Gibt es dazu irgendwo Beispiele, auf mysql.de ist wie gesagt nicht viel zu finden. Woher habt Ihr denn Euer wissen über Trigger? |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Ich kenn mich mit den MySQL Triggern nicht so aus (gibts ja erst sein der 5-er Version), aber meist hast Du so temporäre Tabelle die Inserted und Deleted heissen. Beim Einfügen eines Datensatzes kannst Du also z.B. mit einem
SQL-Code:
die Spaltenwerte abfragen.
select * from inserted
Auch so Dinge wie
SQL-Code:
können da sehr nützlich sein.
set Name = (Select Name from Inserted)
Aber wie gesagt, wie die genaue Syntax bei MySQL heisst, weiss ich nicht. Aber das sollte schon in der Online Hilfe zu finden sein. |
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Mit MySQL kenn ich mich nicht so aus, aber normalerweise gibt es die Kontextvariablen old und new mit denen man auf die verschiedenen Wertezustände zugteifen kann ( wobei es bei einem Insert nur new und beim Delete nur old gibt). An sonsten gelten für Trigger die Regeln für SPs.
|
Re: Veränderung in der Mysql-Db bemerken udn Mysql-Dump und
Ich danke Euch, muss ich mich nach einer guten Lektüre umsehen, Ihr habt mir ja schon gute Anhaltspunkte gegeben.
Gruß René |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 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