SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.05.2012 07:49:58

rus016
Участник
Зарегистрирован: 25.05.2012
Сообщений: 5

Помогите с проблемой в хранимой процедуре

Вот код:
BEGIN
  SET a = 'custom_field_';
  SET b = 1;
  WHILE (b <= 15)
DO
  SET c = concat(a, b);
  SELECT c;
  ALTER TABLE r ADD c TEXT DEFAULT NULL;
  SET b = b + 1;
END WHILE;
END

Проблема в том что запрос: ALTER TABLE r ADD c TEXT DEFAULT NULL; не воспринимает переменную - с, а воспринимает просто как  - с .
Помогите как вставить переменную в этот запрос ?!?

Неактивен

 

#2 25.05.2012 11:11:56

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Помогите с проблемой в хранимой процедуре

А если переменную назвать не "c", а как-то еще?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 25.05.2012 17:59:27

rus016
Участник
Зарегистрирован: 25.05.2012
Сообщений: 5

Re: Помогите с проблемой в хранимой процедуре

Путем переименования тоже не получаеться но я решил таким образом !
Код:
BEGIN
  SET a = 'custom_field_';
  SET b = 1;
  WHILE (b <= 2000)
DO
  SET c = concat(a, b);
  SET @s = concat('ALTER TABLE r ADD ', c, ' MEDIUMTEXT NOT NULL');
  PREPARE mselect FROM @s;
  EXECUTE mselect;
  SET b = b + 1;
END WHILE;
END

Теперь работает !!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson