MySQL in triggerji

cat

Fizikalc
3. sep 2007
901
52
28
Sicer sem pri MySQL bolj kot ne začetnik, ampak imam sledečo situacijo kjer mi niti striček google niti MySQL online dokumentacija nista v pomoč.

Zadeva je sledeča - na nivoju tabele bi rad naredil trigger (v bistvu 3), ki mi :

1. po novem recordu v tbl1 doda nov record v tbl2 - z vsebino tbl1.id + status "inserted"
2. po urejanju recorda v tbl1 doda nov record v tbl2 - z vsebino tbl1.id + status "changed"
3. pred brisanjem recorda doda nov record v tbl2 - z vsebino tbl1.id + status "deleted"

Problem pa je v tem, da razen v prvem primeru nikakor ne morem dobiti ID editiranega ali izbrisanega recorda iz tbl1, jaz pa hočem nekako dobiti informacijo oz. zgodovino kaj se z določeno tabelo dogaja.

Sem se mogoče problema lotil iz napačne strani ?
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Kaj takega? Iz glave, nisem probal

Koda:
CREATE TRIGGER tr1 BEFORE INSERT ON tbl1
  FOR EACH ROW BEGIN
    INSERT INTO tbl2 SET id = NEW.id, status = 'inserted';
  END;

CREATE TRIGGER tr2 BEFORE UPDATE ON tbl1
  FOR EACH ROW BEGIN
    INSERT INTO tbl2 SET id = OLD.id, status = 'updated';
  END;

CREATE TRIGGER tr3 BEFORE DELETE ON tbl1
  FOR EACH ROW BEGIN
    INSERT INTO tbl2 SET id = OLD.id, status = 'deleted';
  END;
 

cat

Fizikalc
3. sep 2007
901
52
28
Z malo modifikacijo deluje kot je treba.
aplauz.gif


Hvala !