SET NEW.hash = MD5(CONCAT(new.idItem, new.title, new.count, new.price));
END
$
CREATE
TRIGGER before_update_item
BEFORE UPDATE
ON item
FOR EACH ROW
BEGIN
SET new.hash = MD5(CONCAT(new.idItem, new.title, new.count, new.price));
END
$
DELIMITER ;
Вот пример вставки
INSERT INTO `Item`
(`idItem`,`title`,`count`,`price`)
VALUES
(null,'fsdfsd',2,23.45),
(null,'sdfsdf',1,26.45),
(1,'12312312',2,23.45),
(2,'—--',1,26.45)
ON DUPLICATE KEY UPDATE
title = VALUES(title),
count = VALUES(count),
price = VALUES(price);
SELECT * FROM `Item`;
SELECT * FROM `Change`;
Есть ли возможность сделать все это более универсально, а не дублировать для каждой таблици?
Например, можно ли как-то пройтись по NEW и OLD, как по массиву или передать его в процедуру? И можно ли узнать имя таблици для которой вызывается триггер?
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
CoDy
Всем привет.
Есть следующая задача:
- отследить изменение таблици(insert/update), причем нужно указать какие поля изменились;
- в спец поле в таблице вставлять hash всей записи.
Вот мое решение
Вот пример вставки
Есть ли возможность сделать все это более универсально, а не дублировать для каждой таблици?
Например, можно ли как-то пройтись по NEW и OLD, как по массиву или передать его в процедуру? И можно ли узнать имя таблици для которой вызывается триггер?
Edited by CoDyLink to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.