У меня есть промежуточный сервер, на котором мне нужно удалить базу данных и повторно заполнить ее различными таблицами. Обычно это так просто, как:
DROP DATABASE testbd;
Однако, как правило, всякий раз, когда я отбрасываю промежуточную базу данных, к ней подключается около 100 (действительных) подключений, и мне это безразлично. Есть ли надежный способ сделать drop database
, не выясняя, есть ли открытые транзакции, или это, или то?
Я думал, что концептуально выполняю что-то вроде следующего:
# get a global lock on everything -- no one except me can do anything now
CREATE LOCK
# get all active connections and then kill them
select concat('CALL mysql.rds_kill( ',id,');') from information_schema.processlist where DB='avails';
-- run each select statement
# drop the database
DROP DATABASE testdb
# if this is required?
END LOCK
Выше приведен псевдокод, но я в основном ищу способ выдать команду и базу данных. упасть в течение 5 секунд безотказным способом.