MySQL - Удаление через хранимую процедуру

Ответить
Аватара пользователя
JaRule

MySQL - Удаление через хранимую процедуру

Сообщение JaRule »

Всем доброе время суток! Ребят, такая задача: нужно создать хранимую процедуру, которая удаляет из таблицы набор данных, например delete from table where id in (1,2,3), так вот, id записей, которые надо удалить, должны передаваться этой процедуре в качестве параметра, но какой нужно задать тип парамертра и как в него передать набор этих id чтобы он запихнул их в (in), количество их может быть любое. Я сделал входной параметр arg:varchar(255), сама процедура выглядит так:

Proc1(In arg Varchar(255))\

begin

delete from table where id in (arg);

end;

а обращаюсь к ней как call Proc1("1,2,3"),

происходит удаление только первой записи их переданных (id=1). Как сделать чтобы удалялись все переданные?

Заранее спасибо!
Аватара пользователя
Delirium

Re: MySQL - Удаление через хранимую процедуру

Сообщение Delirium »

JaRule, почитай тему из соседней ветки -
MSFT SQL Server - SQL Backup-создание ежедневно нового архива
.

Параметр надо делать максимально большим, т.к. ты не знаешь количество ID, которое будет передавать. В SQL Server это NVARCHAR(MAX).

Суть в том, что тебе надо будет( как в примере выше) сформировать сначала готовую строку, а потом запустить процедуру, выполняющую любой корректный SQL код.
Ответить

Вернуться в «Программирование и базы данных»