sql >> Databáze >  >> RDS >> Mysql

protokolovat aktualizace mysql

Můžete použít spouštěč a uložit změny do jiné tabulky.

Z hlavy (následující předpokládá, že productId nebude nikdy aktualizován);

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 ;



  1. SELECT DISTINCT ignoruje různé případy

  2. SQL COUNT() pro začátečníky

  3. Spouštíte mysql_upgrade v Dockeru?

  4. Funkce COSH() v Oracle