Я пытаюсь вызвать процедуру, которая успешно компилируется, но при вызове я получаю эту ошибку:
Запрос: вызов proc5
Код ошибки: 1064 У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'NULL' в строке 1
Это моя хранимая процедура:
DELIMITER $$
CREATE DEFINER = `root` @`localhost` PROCEDURE `proc5` ()
BEGIN
DECLARE done BOOL DEFAULT FALSE ;
DECLARE tablename VARCHAR (100) ;
DECLARE tracktables CURSOR FOR
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE TABLE_SCHEMA = 'db1' ;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE ;
OPEN tracktables ;
myloop :
LOOP
FETCH tracktables INTO tablename ;
IF done
THEN CLOSE tracktables ;
LEAVE myloop ;
END IF ;
SET @s = CONCAT(
'INSERT INTO db2.test1 SELECT * FROM ',
@tablename
) ;
PREPARE stmt1 FROM @s ;
EXECUTE stmt1 ;
DEALLOCATE PREPARE stmt1 ;
END LOOP ;
END $$
DELIMITER ;
Собственно, я хочу выбратьвсе таблицы из базы данных и вставьте эти таблицы в одну таблицу, которая находится в другой базе данных, используя MySQL Cursors.И когда я вызываю эту хранимую процедуру, я получаю вышеуказанную ошибку.