Как изменить СОБЫТИЕ в mysql и изменить запуск - PullRequest
0 голосов
/ 08 мая 2020

Мой администратор базы данных настроил множество событий, которые запускают код SQL длиной в тысячи строк. Теперь, когда он ушел, как мне изменить инструкцию EVENT DO, когда выполняемый код состоит из тысяч строк?

Я пробовал делать это в рабочей среде, он просто запускает тысячи строк кода, которые я связал PHP PDO для запуска ALTER EVENT 'name' DO: placeholder Я пробовал mysqli

все со стандартными ошибками привязки. Мне удалось вставить код в текстовое поле в другой таблице, поэтому я знаю, что PDO php работает, и подумал, есть ли команда SQL, чтобы скопировать этот файл в событие?

Ответы [ 2 ]

0 голосов
/ 12 мая 2020

Я обнаружил, что работает следующее решение:

DROP EVENT IF EXISTS имя базы данных. processes_name;

DELIMITER $$

СОЗДАТЬ СОБЫТИЕ, ЕСЛИ НЕ СУЩЕСТВУЕТ имя базы данных. processes_name;

В РАСПИСАНИИ КАЖДЫЙ ДЕНЬ НАЧИНАЕТСЯ '2018-02-05 08:00:00' ПО ЗАВЕРШЕНИИ СОХРАНИТЬ ВКЛЮЧИТЬ

НАЧАТЬ

* тысяч строк SQL кода *

END; $$;

то есть мне не хватало частей BEGIN и END

0 голосов
/ 08 мая 2020

между обратными кавычками можно сделать очень много, но это не рекомендуется.

$sql = "ALTER EVENT myschema.`my | event`
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
    DO
      UPDATE myschema.mytable SET mycol = mycol + 1;";

ALTER EVETNS не поддерживается операторами Prepared с параметрами, вы можете использовать только замену строк. но там вы должны делать обратные кавычки для столбцов и апострофы для строк

$sql = "ALTER EVENT myschema.`$myeventt`
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL $mytime HOUR
    DO
      UPDATE myschema.`$mytable` SET `$mycol` = `$mycol` + $myaddnumber,`$mycol2` = '$mystrimng';";

, это вы можете использовать с pdo или mysqli И php заменит переменные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...