![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Rename table в хранимой процедуре [D7, MySQL]
Квэнди © (2008-01-27 14:20:00)Здравствуйте. Я хочу из хранимой процедуры переименовывать таблицы, делаю так:
create procedure renpref ()
begin
declare str varchar (50);
declare strnew varchar (50);
declare is_end INT Default 0;
declare curtab cursor for show tables;
declare continue handler for not found set is_end=1;
open curtab;
wet: LOOP
fetch curtab into str;
if is_end then LEAVE wet;
END IF;
set strnew = insert(str,1,instr(str,'_'),'tst_');
Rename table @str to @strnew;
END LOOP wet;
CLOSE curtab;
end;
ну собственно здесь при попытке создания процедуры возникает сразу ошибка синтаксиса:
Rename table @str to @strnew;
а можно ли как- нибудь подставить в RENAME TABLE значение переменной ? и если можно то как выйти из этой ситуации ?
СУБД MYSQL
ANB (2008-01-28 14:07:00) [1]
> так неинтересно, лучше, когда хранимка в пакете, а пакет
> ссылается на таблицу
дадад. и пакет этот называется типа коммон и его юзает 80% других пакетов и хранимок, а также все триггера и вьюхи. :)
Petr V. Abramov (2008-01-28 13:37:00) [2]
> ANB © (28.01.08 11:47) [3]
так неинтересно, лучше, когда хранимка в пакете, а пакет ссылается на таблицу
:)
Sergey13 (2008-01-28 11:53:00) [3]> [3] ANB © (28.01.08 11:47)
Да много на чего можно нарваться.
ANB (2008-01-28 11:47:00) [4]
> Обойти это можно только через динамический SQL
А если старая таблица (оракл) еще и используется в этой же хранимке, то результат обхода через динамический скл будет совсем веселым :)
Sergey13 (2008-01-28 10:57:00) [5]> [0] Квэнди © (27.01.08 14:20)
Не знаю как мускуле, но некоторые сервера вообще не дают возможности менять метаданные в ХП. Обойти это можно только через динамический SQL. А вот надо ли обходить, см [1].
MsGuns (2008-01-28 10:46:00) [6]Не следует бе крайней надобности переименовывать таблицы в БД, а уж закладывать это в бизнес-логику - устраивать себе маленький термоядерный взрывчик ;)