Создание Trigger - Проблема с Update

У меня есть база данных: envia_trigger, что идентична базе данных: recibe_trigger и я хочу, чтобы, когда envia_trigger ему будет сделан CRUD, эта стала отвечающей совремнным требованиям автоматически в нее recibe_trigger. Для этого я создал TRIGGER, когда он делает несекцию и стертое место, Сюда исходи из кода таблицы:

CREATE TABLE `account` (
    `id_test` INT(11) NOT NULL AUTO_INCREMENT,
    `acct_num` INT(11) NULL DEFAULT NULL,
    `amount` DECIMAL(10,2) NULL DEFAULT NULL,
    PRIMARY KEY (`id_test`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=14
;

Здесь trigger, которые функционируют верно:

DROP TRIGGER IF EXISTS `account_INSERT`;
CREATE DEFINER=`root`@`localhost` TRIGGER `account_INSERT` AFTER INSERT ON `account` 
FOR EACH ROW INSERT INTO recibe_trigger.account VALUES(NEW.id_test, NEW.acct_num, NEW.amount);

DROP TRIGGER IF EXISTS `account_DELETE`;
CREATE DEFINER=`root`@`localhost` TRIGGER `account_DELETE` BEFORE DELETE ON `account` 
FOR EACH ROW DELETE FROM `recibe_trigger`.`account` WHERE OLD.`id_test` LIMIT 1 

Но проблема находится в UPDATE:

CREATE TRIGGER `account_UPDATE` AFTER UPDATE ON `account` 
FOR EACH ROW UPDATE `recibe_trigger`.`account` 
SET acct_num = NEW.acct_num WHERE `account`.`id_test`= NEW.`id_test`

Нужно знать, какая колонна состояла modificacada в том, чтобы снабжать ссылками так правильно в TRIGGER, например: В коде update достигни, если он изменяется внутри колонны envia_trigger.account, он меняется верно в таблице recibe_trigger.account, но если он меняется в envia_trigger.amount, не меняется (потому что он не снабжен ссылками). Как возможно ссылаться?

1
задан 08.11.2019, 16:50
1 ответ
UPDATE `recibe_trigger`.`account`
SET acct_num = NEW.acct_num,amount = NEW.amount,id_test = NEW.id_test  WHERE id_test = OLD.id_test

Проблема состоит в том, что ты только обновлял поле в trigger-update ты, должно быть, обновляешь все, ademГЎs в where ты, должно быть, используешь OLD, если они меняют id_test

1
ответ дан 01.12.2019, 12:16