Я не могу объявить переменные внутри этой процедуры

Я не могу заставить этот код работать, я продолжаю получать синтаксические ошибки, и я не вижу ничего плохого в объявлении предложений.

    delimiter //
    create procedure Plsql1 (Count int)
        begin


            CREATE TABLE alumnos(
                nombre VARCHAR(7) primary key,
                edad INT (7),
                sexo INT (2));

            DECLARE Count int default 10;
            DECLARE Number int default 0;
            DECLARE done int = 0;

            etiq1: loop
                if not done then
                    INSERT INTO alumnos VALUES(CONCAT('Victor',Number), Number*5, Number%2);
                    SET N=N+1;

                    if (Number=Count) SET done=1;
                else
                    leave etiq1;
                end if;
            end loop;

            SELECT * FROM alumnos;
        end //
delimiter ;

Когда я пытаюсь заставить это работать, я получаю это:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE Count int default 10;
        DECLARE Number int default 0;
        DECL' at line 10

Тем не менее, я не вижу никаких синтаксических ошибок там. Несколько советов для этого, пожалуйста?

1 ответ

Вы можете создать такую ​​таблицу в хранимой процедуре:

CREATE PROCEDURE procedure1(IN tableName VARCHAR(255))
BEGIN
  SET @sql = CONCAT('CREATE TABLE ', tableName, '(column1 INT(11))');
  PREPARE stmt FROM @sql;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
  // Do all other stuff then...
END

Это должно работать.

Другие вопросы по тегам