2012-06-11 2 views
1

У меня есть карта ключа/значения в сеансе моего веб-приложения django. Пример:key/value map to mysql procedure from django

3 = YES 
4 = NO 
9 = YES 

Я хотел бы передать эти ключи и значения в процедуру mysql. Какой был бы лучший способ добиться этого?

ответ

1

MySQL does not support passing arrays to a stored procedure, поэтому вы не можете сделать это напрямую.

Если максимальное значение для ключа известно, вы можете создать хранимую процедуру со многими аргументами. В вашем примере вы можете создать процедуру с 9 параметрами, передать YES для третьего и девятого параметров, NO для четвертого и NULL для остальных. Уродливо, но это работает.

Если вы не можете этого сделать, вы можете создать новую таблицу с идентификатором сеанса, ключом и значением в виде столбцов и передать идентификатор сеанса в качестве параметра хранимой процедуры. Затем вы можете выбрать ключ/значения внутри хранимой процедуры.

+0

Создание новой таблицы с session_id и значения, а затем передача ее как аргумента процедуры - лучшее решение. Спасибо. – gabberr