Есть ли способ немедленно прекратить выполнение SQL-скрипта на сервере MySQL, например, команда "break" или "exit"?
Я поставил операторы, которые я хочу запустить в файле "updates.sql", и используя команду MySQL для выполнения:
mysql -u <username> <dtabase_name> < updates.sql
ALTER TABLE 'app_batch'
ADD COLUMN 'fee' DOUBLE NOT NULL AFTER 'mode';
ALTER TABLE 'app_course'
DROP COLUMN 'course_fee',
DROP COLUMN 'duration_type',
DROP COLUMN 'duration',
Это мой запрос внутри файла.
Он выполняет событие строк DROP COLUMN
хотя
ADD COLUMN 'fee' DOUBLE NOT NULL AFTER 'mode';
терпит неудачу
Подключитесь к серверу mysql с помощью терминала (используйте командную строку, если вы используете Windows)
mysql -u [имя_пользователя] -p [пароль]
Выполните следующую команду, чтобы просмотреть запущенные запросы.
mysql> show full processlist; +----+------+-----------+------+---------+------+----------+-----------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+----------+-----------------------+ | 8 | root | localhost | NULL | Sleep | 25 | | NULL | | 9 | root | localhost | NULL | Query | 0 | starting | show full processlist | +----+------+-----------+------+---------+------+----------+-----------------------+ 2 rows in set (0.00 sec)
Затем завершите запрос по идентификатору процесса
mysql> kill 9;
Используйте SHOW PROCESSLIST
для просмотра всех подключений и УБИВАЙТЕ идентификатор процесса, который вы хотите убить.
mysql>show processlist;
mysql> kill "number from first col";
или вы можете завершить соединение KILL также для остановки всего запроса из определенного соединения.
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET has_error = 1;