0
Процедура должна принять существующую таблицу (oldtable) и создать новую таблицу (new_table_n). Он работает, но не создает новую таблицу. Любая помощь будет оценена.Хранимая процедура не создает новую таблицу
DELIMITER $$
CREATE PROCEDURE P_DYN_TABLE(IN OLDTABLE VARCHAR(30), IN NEW_TABLE_N VARCHAR(30))
LANGUAGE SQL
BEGIN
DECLARE STATEMENT_1 VARCHAR(1000);
DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
SET STATEMENT_1 = '';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
SET STATEMENT_1 = CONCAT('CREATE TABLE ',NEW_TABLE_N,' AS SELECT * FROM ',OLDTABLE,' WHERE 1=2');
PREPARE S1 FROM @STATEMENT_1;
EXECUTE S1;
SET STATEMENT_1 = CONCAT('INSERT INTO ',NEW_TABLE_N,' SELECT * FROM ',OLDTABLE);
PREPARE S2 FROM @STATEMENT_1;
EXECUTE S2;
END; $$
Отсутствует; после второго обработчика или просто полностью удалите его. – Shadow