Я не могу объявить переменные внутри этой процедуры
Я не могу заставить этот код работать, я продолжаю получать синтаксические ошибки, и я не вижу ничего плохого в объявлении предложений.
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
Это должно работать.