powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
5 сообщений из 5, страница 1 из 1
MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
    #39216252
Существует-ли возможность в MySQL сделать следующее:
На входе:
Имя_таблицы
Набор_данных - далее НД
Процедура должна делать так:

Код: sql
1.
2.
3.
4.
5.
Если Имя_таблицы="Т1" То
    Insert into Т1 (Т1.П1, Т1.П3, Т1.П10) values (НД[1],НД[2],НД[3]),(НД[4],НД[5],НД[6]),(НД[7],НД[8],НД[9])
ИначеЕсли Имя_таблицы="Т2" То
    Insert into Т2 (Т2.П1, Т2.П7) values (НД[1],НД[2])(НД[3],НД[4]),(НД[5],НД[6]),(НД[7],НД[8])
КонецЕсли


Блин, коряво описал. Еще попытка:
Некая оболочка для инсерта. Проблема в массиве данных - не могу придумать как его передавать. Как понял из мануала к MySQL - нет такого понятия как входной массив (или переменное количество входных параметров).

"Ноги растут" из корявой работы 1С-а: если на 100 записях еще нормально, то, примерно, с 5000 начинается "мягкое место"....
...
Рейтинг: 0 / 0
MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
    #39216261
Дополню:
Предполагается, что на стороне 1С будет вызываться следующее:
Код: sql
1.
MyInsert ("table1","1","zap1","2","zap2")


В этом случае выполнится
Код: plaintext
insert into table1 (id,name) value ("1",zap1"),("2","zap2");
Код: sql
1.
MyInsert ("table2","1","Москва","Много","2","Химки","мало","3","Мурманск","Поменьше чем в Москве")


а в этом:
Код: plaintext
insert into table2 (id,siti,ryba) value ("1","Москва","Много"),("2","Химки","мало"),("3","Мурманск","Поменьше чем в Москве");
...
Рейтинг: 0 / 0
MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
    #39216287
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обоснуйте необходимость ОДНОЙ процедуры для всех вставок.
...
Рейтинг: 0 / 0
MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
    #39216297
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Стрекалов,
нет, такой возможность нет.
нет массивов или сложных данных в составе типов mySQL.

вызывай процедуру несколько раз, используй транзакции, Или просто временные данные в специальных отдельных таблицах.
...
Рейтинг: 0 / 0
MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
    #39216307
Выход нашел через всем известное место, но такой .... и представить себе не мог:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE DEFINER = 'POLZOVATEL'@'%'
PROCEDURE МояБД.MyIns(IN Param1 MEDIUMTEXT)
BEGIN
   SET @query = Param1;
   PREPARE zxc FROM @query;
   EXECUTE zxc;
END


Понятно, что небезопасно. Зато работает (пока на стенде - в боевую систему еще не запихнули). Ну и устно/письменная договоренность на использование этой процедурой с 1С-ками установленна (может анализировать первое слово - и все что не инсерт - давить???)

З.Ы. И почему 1С по человечески с SQL не работает???
Пример:
поставил логирование всех запросов к серверу.
В 1С дают команду изменить 1 (ОДНУ!!!) запись.
К серверу приходят запросы:
delete from MyTable where ID="айдишник записи";
insert into MyTable (все поля) values (значения всех полей);

А ведь ожидался запрос вида:
update MyTable set ПОЛЕ=НОВОЕ_ЗНАЧЕНИЕ where id="айдишник записи";
На одной-ста записях - незаметно. На 10000 - ТРЕШ!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL, процедура, на входе - переменное количество данных или массив- есть-ли возможность?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]