Назад | Перейти на главную страницу

Как создать один запрос на обновление (mysql) для нескольких баз данных

У меня есть несколько DBS на одном сервере mysql. Структура и схема DBS абсолютно одинаковы (отличаются только данные)

запрос на определенную базу данных работает хорошо вот так (написано на phpmyadmin)

UPDATE  `mdl_modules` SET `visible`=0 
WHERE `name` IN ("survey","feedback","audio","testing")

Думал, может быть что-то вроде этого:

UPDATE `db_name1`.`mdl_modules`, `db_name2`.`mdl_modules`,`db_name3`.`mdl_modules`
SET `visible`=0  WHERE `name` 
IN ("survey","feedback","audio","testing")

но это не работает и я получаю ошибку конечно у меня больше 3 дб ..

Спасибо

Используйте транзакции.

START TRANSACTION;
  UPDATE  `db_name1`.`mdl_modules` SET `visible`=0 
    WHERE `name` IN ("survey","feedback","audio","testing");
  UPDATE  `db_name2`.`mdl_modules` SET `visible`=0 
    WHERE `name` IN ("survey","feedback","audio","testing");
  UPDATE  `db_name3`.`mdl_modules` SET `visible`=0 
    WHERE `name` IN ("survey","feedback","audio","testing");
COMMIT;