Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-aktualisierungen protokollieren

Sie könnten einen Trigger verwenden und die Änderungen in einer anderen Tabelle speichern.

Aus dem Kopf (das Folgende geht davon aus, dass productId nie aktualisiert wird);

create table main (
    `id` int not null auto_increment,
    `title` varchar(30) not null,
    `price` float not null, 
    primary key(`id`)
);

create table logger (
    `id` int not null auto_increment,
    `productId` int not null,
    `from_title` varchar(30) not null,
    `to_title` varchar(30) not null,
    `from_price` float not null,
    `to_price` float not null,
    primary key(`id`)
);

delimiter //
create trigger my_logger before update on main
begin
    insert into
        logger
    set
        `productId`=OLD.`id`,
        `from_title`=OLD.`title`,
        `to_title`=NEW.`title`,
        `from_price`=OLD.`price`,
        `to_price`=NEW.`title`;
end;//
delimiter ;