trigger if else then

Status
Niet open voor verdere reacties.

superpeter

Gebruiker
Lid geworden
18 jan 2008
Berichten
42
hallo allemaal

dit is een vervolg post op een eerdere post van mij.
http://www.helpmij.nl/forum/showthread.php/935691-php-mysql-lastig-script
dat ik hier een nieuwe post start is omdat ik denk dat het in mysql/phpmyadmin mogelijk moet zijn met behulp van een triger.
en daarmee wijk je af van php en vond ik het beter een nieuwe post te starten die in de voor dat dele goede forum staat.

wat ik op dit moment wil met een trigger is als volgt
ik wil dat van de tabel "wp_bp_xprofile_data"
waar de colom "field_id" 2 bevat de colom "value" word in ge voegd in de tabel "mysql_whitelist" bij "UUID" en de colom "user_id" word in ge voegt bij de colom ""wp_id"

ook wil ik dat als in de tabeld"wp_bp_xprofile_data"de colum "value"veranderd dit ook word veranderd in de tabel "mysql_whitelist"veranderd.

is er iemand die me kan vertellen hoe de betreffende triger er uit moet zien?
alvast bedankt
 
helaas heb ik in deze topic nog geen reactie gehad.
wel ben ik nog wat aan het peuzelen ge weest en heb nu mischien e vraag wat gedeatieerder:


ik ben het een en ander aan het doen met men website en zo nog wat andere diensten.
nu heb ik een paar mysql trigers nodig maar heb nog geen info kunnen vinden die ik snap.
daarom de vraag of iemand voor mij voorbeeld trigers kan maken.
die gebaseerd is op de volgende tabellen en colomen.

wat wil ik met de trigers doen:
ik wil dat van uit tabel: `e107_user_extended` colom 'user_extended_id' en colom 'user_UUID' worden gekopieerd naar:
tabel `mysql_whitelist` waarbij colom 'user_extended_id' ge kopjeerd moet worden naar colom: 'id_wp' en colom 'user_UUID' gekopieerd word naar: colom 'UUID'

dit zelfde moet ook ge beuren bij het wijzigen de colomen in de tabel: `e107_user_extended`

hopelijk kan iemand voor mij op basis van de gegeven info voorbeeld trigers maken.

hopelijk krijg ik spoedig antwoord want ik zit nu tog wel egt vast en kan helaas al aantal dagen niet verder
groeten: peter
 
Er mist nog wat informatie om de trigger te maken.
- wanneer moet de trigger af gaan? Bij een update, insert, delete of alle 3?
- wat bedoel je precies met " gekopieerd naar"? Moet er een nieuwe regel (insert) in mysql_whitelist aangemaakt worden? Of bestaat deze al en moet de bestaande bijgewerkt (update) worden?
- op basis van welke kolom in e107_user_extended moet de mutatie in mysql_whitelist gedaan worden?

Maar los daarvan, een opzetje hoe een trigger er uit zou kunnen zien:

[sql]CREATE TRIGGER trigger_naam
AFTER UPDATE ON e107_user_extended
FOR EACH ROW
upd: BEGIN
UPDATE mysql_whitelist
SET id_wp = NEW.user_extended_id
, UUID = NEW.user_UUID
WHERE kolom_uit_mysql_whitelist = kolom_uit_e107_user_extended;
END upd;
$$[/sql]

Deze doet hard een update op de tabel mysql_whitelist zonder dat hier voorwaarden aan zitten. Wil je dat de update alleen uitgevoerd wordt als één van de twee velden gewijzigd is dan krijg je zoiets:

[sql]CREATE TRIGGER trigger_naam
AFTER UPDATE ON e107_user_extended
FOR EACH ROW
upd: BEGIN
IF NEW.user_extended_id <> OLD.user_extended_id
OR NEW.user_UUID <> OLD.user_UUID
THEN
UPDATE mysql_whitelist
SET id_wp = NEW.user_extended_id
, UUID = NEW.user_UUID
WHERE kolom_uit_mysql_whitelist = kolom_uit_e107_user_extended;
END IF;
END upd;
$$[/sql]

Hopelijk kom je hier een stapje verder mee.
 
als eerste heel erg bedankt voor de reactie.
wat de 3 punten betreft, zal ik eens proberen te beantwoorden.
-1 de trigger moet in alle 3 de gevallen worden uit gevoerd.
-2 gekopieerd naar"? weet ik zelf niet eens meer wat ik daarmee bedoelde.
-3 de mutatie moet gebeuren op basis van beide colomen dus zowel als id_wp "veranderd/word toe ge voeg/deleted" dan wel als user_uuid "veranderd/word toe ge voeg/deleted"
verder lijkt voorbeeld 2 die gegevens is me het meest ideale aan gezien je volgens mij bij voorbeeld 1 gewoon lomp alles gaat copjeren en dus grotere data stromen krijgt dan nodig is.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan