Я хочу написать сохраненный процесс, который перебирает все таблицы в моей базе данных и выполняет некоторые действия.
drop procedure if exists p2;
DELIMITER //
CREATE PROCEDURE `p2` ()
LANGUAGE SQL
DETERMINISTIC
SQL SECURITY DEFINER
COMMENT 'A procedure'
BEGIN
declare cur1 cursor for
show tables from my_database_name
END//
call p2;
Это не работает;Я получаю сообщение о том, что у меня есть ошибка в синтаксисе SQL рядом с 'show tables from my_database_name'
Конечно, вместо того, чтобы делать show tables from my_database_name
, я действительно хочу сказать show tables from database()
или show tables from (select database())
, ни один из которыхработа.
Помогите?Могу ли я сделать это в прямом SQL или мне нужно сначала вызвать show tables
из моей программы, а затем повторить там набор результатов?Как я могу создать курсор для захвата значений таких вещей, как database()
или show tables
?