@alpa_kz

Как создать триггер mysql обновления таблицы в другой Базе данных?

создание таблиц test БД billing;
USE billing;
CREATE TABLE `test` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`content` TEXT NOT NULL 
) ENGINE = innodb;

создание тестовой таблицы в другой Базе billing_test
USE billing_test;
CREATE TABLE `test` (
`id` INT( 11 ) UNSIGNED NOT NULL PRIMARY KEY,
`content` TEXT NOT NULL 
) ENGINE = innodb;

Триггер обновляет при инсерте другую таблицу в другой таблице
use billing;
DELIMITER //
CREATE TRIGGER `update_test3` AFTER INSERT ON `test`
FOR EACH ROW 
BEGIN
   INSERT INTO `billing_test.test` set id = NEW.ID, content = NEW.content;
-- как правильно здесь указать таблицу из другой базы??????
END; 
//
DELIMITER ;

при инсерте
INSERT INTO billing.test(content) VALUE("TEST NEW TRIGEER");

выдает такую ошибку(
->
Table 'billing.billing_test.test' doesn't exist C:\Users\UserA\Documents\SQL.sql
  • Вопрос задан
  • 751 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
`billing_test.test` - это имя таблицы в текущей БД
`billing_test`.`test` - это таблица test в БД billing_test
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexMcArrow
@AlexMcArrow
Люблю РНР, да я такой!
Возможно ваш код просто пример, но в нем есть синтаксические проблемы
INSERT INTO `billing_test.test` set id = NEW.ID, content = NEW.content;

Код INSERT должен выглядеть по другому (в тригире)
INSERT INTO billing_test.test(id, content) VALUE(NEW.ID, NEW.content);

"Может поможет"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы