2016-10-07 7 views
0

Ich habe zwei Tabelle nämlich admin_user, admin_user_bak die Struktur der Tabelle admin_user istMYSQL Trigger-Copy Entire Row während Insert, Update

CREATE TABLE IF NOT EXISTS `admin_user` (
    `user_id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_name` varchar(150) NOT NULL, 
    `name` varchar(150) NOT NULL, 
    `emailid` varchar(150) NOT NULL, 
    `password` varchar(150) NOT NULL, 
    `roll` varchar(50) NOT NULL, 
    `created` datetime NOT NULL, 
    `modified` datetime NOT NULL, 
    `last_login` datetime NOT NULL, 
    `status` enum('active','inactive') NOT NULL, 
    PRIMARY KEY (`user_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

und Struktur der Tabelle admin_user_bak haben alle Felder admin_user und zusätzlich ein Feld bak_user_id. seine Autoinkrement id ..

CREATE TABLE IF NOT EXISTS `admin_user_bak` (
    `bak_user_id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `user_name` varchar(150) NOT NULL, 
    `name` varchar(150) NOT NULL, 
    `emailid` varchar(150) NOT NULL, 
    `password` varchar(150) NOT NULL, 
    `roll` varchar(50) NOT NULL, 
    `created` datetime NOT NULL, 
    `modified` datetime NOT NULL, 
    `last_login` datetime NOT NULL, 
    `status` enum('active','inactive') NOT NULL, 
    PRIMARY KEY (`bak_user_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

hier meine Trigger ist

CREATE TRIGGER ins_admin_user BEFORE UPDATE ON admin_user 
    FOR EACH ROW 
    BEGIN 

    INSERT INTO admin_user_bak (user_id,user_name,name,emailid,password,roll,created,modified,last_login,status) VALUES (NEW.user_id, NEW.user_name, NEW.emailid, new.password, NEW.roll, NEW.created, NEW.modified, NEW.last_login, NEW.status); 

    END 

mein Ziel ist, ich alle Veranstaltungen sichern möchten. Fügen Sie das Update-Löschen eines bestimmten Datensatzes ein. nicht alle aufzeichnen. Ich schreibe für die Einfügung. es funktioniert nicht keine idee .. danke

Antwort

0

ich möchte eine eingabe trigger aber sie hatten geschrieben update auf in ihrem trigger so ist es nicht funktionieren.

Sie verwenden INSERT ON

CREATE TRIGGER ins_admin_user BEFORE INSERT ON admin_user 
    FOR EACH ROW 
    BEGIN 

    INSERT INTO admin_user_bak (user_id,user_name,name,emailid,password,roll,created,modified,last_login,status) VALUES (old.user_id, old.user_name, old.emailid, old.password, old.roll, old.created, old.modified, old.last_login, old.status); 

    END 
+0

Ich habe versucht, aber nicht funktioniert – Ravindr

+0

sind Sie sicher, dass alle Schlüsselwort ** NEU ändern ** zu ** ** OLD – Man