Hey,
ik ben nog maar een beginner met mysql en zit met een probleem.
Wil namelijk een kleine database maken om een beetje te oefenen
heb hierbij een samengestelde tabel gemaakt waar ik twee maal een id ingeef van een
andere tabel + een datum.
bv Insert into behandeling_datum(dierid,behandelingsid,behdat) values (1,1,’1999-1-2’);
nu wil ik de datum bijhouden in een andere tabel dmv een trigger.
Delimiter //
Create trigger laatste after insert on behandeling_datum for each row
Begin
Declare ladat date;
Declare behid int;
Declare behnaam varchar(30);
Select max(behdat) from behandeling_datum where behandeling_datum.dierid = new.dierid
Into ladat;
Select behandeling_datum.behandelingsid from behandeling,behandeling_datum where behdat =( Select max(behdat) from behandeling_datum where behandeling_datum.dierid = new.dierid) into behid;
Select behandeling.soort from behandeling where behandeling.behandelingsid = behid into behnaam;
Update Dier set laatstebehdat = ladat where dier.dierid = new.dierid;
Update Dier set laatstebeh = behnaam where dier.dierid = new.dierid;
End;
//
Delimiter;
Dit lukt, maar als ik nu
Insert into behandeling_datum(dierid,behandelingsid,behdat) values (1,1,’2000-1-2’);
doe, zou ik willen dat dit ook opgeslagen wordt en dat de datum in de andere tabel veranderd. Ik heb er alleen geen flauw benul van hoe ik die duplicate entry moet wegkrijgen.
Voor wie raad weet alvast bedankt
ik ben nog maar een beginner met mysql en zit met een probleem.
Wil namelijk een kleine database maken om een beetje te oefenen
heb hierbij een samengestelde tabel gemaakt waar ik twee maal een id ingeef van een
andere tabel + een datum.
bv Insert into behandeling_datum(dierid,behandelingsid,behdat) values (1,1,’1999-1-2’);
nu wil ik de datum bijhouden in een andere tabel dmv een trigger.
Delimiter //
Create trigger laatste after insert on behandeling_datum for each row
Begin
Declare ladat date;
Declare behid int;
Declare behnaam varchar(30);
Select max(behdat) from behandeling_datum where behandeling_datum.dierid = new.dierid
Into ladat;
Select behandeling_datum.behandelingsid from behandeling,behandeling_datum where behdat =( Select max(behdat) from behandeling_datum where behandeling_datum.dierid = new.dierid) into behid;
Select behandeling.soort from behandeling where behandeling.behandelingsid = behid into behnaam;
Update Dier set laatstebehdat = ladat where dier.dierid = new.dierid;
Update Dier set laatstebeh = behnaam where dier.dierid = new.dierid;
End;
//
Delimiter;
Dit lukt, maar als ik nu
Insert into behandeling_datum(dierid,behandelingsid,behdat) values (1,1,’2000-1-2’);
doe, zou ik willen dat dit ook opgeslagen wordt en dat de datum in de andere tabel veranderd. Ik heb er alleen geen flauw benul van hoe ik die duplicate entry moet wegkrijgen.
Voor wie raad weet alvast bedankt