mysql trigger
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auslese
bestimmten urzeit
bewertungssystem
code
datensatz
fester bestandteil
frage
halbe stunde
http
intervall
machen
note
programmieren
re
spalte
stunden
tabelle
trigger
url
zuordnung
-
Hallo zusammen,
ich habe eine ref="/tag/frage">Frage:
wie kann man per trigger einen Datensatz aus einer tabelle x auslesen und mit einen Datensatz an Tabelle y in einer Spalte eintragen? In der Tabelle x stehen Zuordnungen z.B. 1=> false 2 => true 3 => admin etc.
Wie kann ich es also machen dass wenn ich einen Datensatzin der tabelle y ändere oder hinzufüge automatisch der Wert der in einer Spalte augelesen wird und in eine andere spallte die zuordnung geschrieben wird?
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
function trigger($db, $tabelle_x, $tabelle_y){ $sql_x = "SELECT * FROM `".$db."`.`".$tabelle_x."`"; $sql_y = "INSERT INTO `".$db."`.`".$tabelle_x."` (spalte1, ...) VALUES (wert1, ...)" $res = mysql_query($sql_x); // do something with me mysql_query($sql_y); }
So oder soll ein zweites Script getriggert werden, wenn bei der DB eine SELECT-Anfrage gestartet wurde? -
Hallo nilsmargotti
vielen Dank für deine schnelle Antwort.
ich habe eine Frage Zu dem code:
Wie wird nur ein bestimmter Wert ausgelesen? mirist klar, das macht man mit WHERE aber woher weis der trigger welchen wert er ansteuern soll? gibt es da eine Funktion zu?
Gruß -
Oder redest du von einem Datenbankseitigem Trigger, der ohne Skript auskommt?
-
ja genau das meine ich :)
-
Lustigerweise hatten wir das Thema gestern auch in einem anderen Forum. :-)
Für die Grundsätze dazu:
http://www.j-breuer.de/blog/programmieren-mysql-6-trigger/
https://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html
ABER: Ich weiß nicht, ob das DB-System hier die MySQL-Trigger unterstüzt, da hier ein Fork läuft.
Dazu braucht der User zumindest unter MySQL noch das TRIGGER-Recht.
Das müsstest du mal mit dem Support abklären. -
Wenn das nicht funktioniert könntest du selber einen schreiben und die einzige Möglichkeit, die mir jetzt einfällt wäre ein Script, dass die Datenbank mit einer anderen Vergleicht und so herausfindet, was geändert wurde. Das Script würde dann jede Stunden oder jede halbe Stunde (je nach dem wie schnell es reagieren soll) per Cronjob aufgerufen.
-
Ich habe es jetzt mahl so versucht, wie ich es mit PHP getan hätte (ohne die querrys). doch dies funktioniert nicht. Hat einer eine Idee? das tutorial verstehe ich leider nicht;(
$sql = SELECT * FROM `Bewertungssystem` WHERE `kmk` LIKE 'NEW.kmk' LIMIT 1 while($d = $sql) { $note = $d['note']; } UPDATE `E` SET (`note`) VALUES ('$note')
Gruß -
vielleicht hilft dir das weiter:
MySQL: Stored Procedures und regelmäßiger Aufruf des MySQL "Event Scheduler"
Der Event Scheduler ist erst seit MySQL 5.1.6 fester Bestandteil von MySQL.
Schau dir dazu mal den folgenden Link an:
http://www.j-breuer.de/blog/programmieren-mysql-7-event-scheduler/
Beitrag zuletzt geändert: 12.12.2014 11:02:25 von dunkeltuten -
Hallo dunkeltuten
ein event schleuder hilft mit leider nicht, da dieser zu einer bestimmten urzeit / intervall ausgelößt wird. mir geht es aber darum, dass ich zum zeitpunkt des einfügens eines datensatzes der entsprechende Wert zugeordnet wird und in die 2. tabelle geschrieben wird und nicht erst nach xxx stunden oder so
gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage