Перейти к основному содержимому

Добавить записи

Добавляет записи в таблицу

Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "", Знач Tls = "") Экспорт

ПараметрCLI опцияТипОбяз.Назначение
Таблица--tableСтрокаИмя таблицы
МассивДанных--rowsМассив Из СтруктураМассив структур данных строк: Ключ > поле, Значение > значение поля
Транзакция--trnБулевоИстина > добавление записей в транзакции с откатом при ошибке
Соединение--dbcСтрока, ПроизвольныйСоединение или строка подключения
Tls--tlsСтруктура Из КлючИЗначениеНастройки TLS, если необходимо. См. ПолучитьНастройкиTls

Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса


подсказка

Данные записей указываются как массив структур вида:
{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}

Список доступных типов описан на начальной странице документации библиотеки MySQL


Пример использования для 1С:Предприятие/OneScript
    Адрес  = "127.0.0.1";
Логин = "bayselonarrend";
Пароль = "12we...";
База = "testbase1";

СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);

Таблица = "testtable";
МассивЗаписей = Новый Массив;

Картинка = "https://api.athenaeum.digital/test_data/picture.jpg";
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные

ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();

СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("char_field" , Новый Структура("TEXT" , "AAAAA"));
СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("TEXT" , "Some varchar"));
СтруктураЗаписи.Вставить("tinytext_field" , Новый Структура("TEXT" , "Some tiny text"));
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
СтруктураЗаписи.Вставить("mediumtext_field", Новый Структура("TEXT" , "Some medium text"));
СтруктураЗаписи.Вставить("longtext_field" , Новый Структура("TEXT" , "Some looooooong text"));
СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("INT" , 127));
СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("INT" , -32767));
СтруктураЗаписи.Вставить("mediumint_field" , Новый Структура("INT" , 8388607));
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , -2147483647));
СтруктураЗаписи.Вставить("uint_field" , Новый Структура("UINT" , 4294967295));
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("INT" , 9223372036854775807));
СтруктураЗаписи.Вставить("float_field" , Новый Структура("FLOAT" , 100.50));
СтруктураЗаписи.Вставить("double_field" , Новый Структура("FLOAT" , 100.512123));
СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATE" , ТекущаяДата));
СтруктураЗаписи.Вставить("timestamp_field" , Новый Структура("DATE" , ТекущаяДата));
СтруктураЗаписи.Вставить("mediumblob_field", Новый Структура("BYTES" , Картинка));
СтруктураЗаписи.Вставить("set_field" , Новый Структура("TEXT" , "one"));

МассивЗаписей.Добавить(СтруктураЗаписи);

// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MySQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения);
    # JSON данные также могут быть переданы как путь к файлу .json

oint mysql ДобавитьЗаписи \
--table "testtable" \
--rows "[{'char_field':{'TEXT':'AAAAA'},'varchar_field':{'TEXT':'Some varchar'},'tinytext_field':{'TEXT':'Some tiny text'},'text_field':{'TEXT':'Some text'},'mediumtext_field':{'TEXT':'Some medium text'},'longtext_field':{'TEXT':'Some looooooong text'},'tinyint_field':{'INT':127},'smallint_field':{'INT':-32767},'mediumint_field':{'INT':8388607},'int_field':{'INT':-2147483647},'uint_field':{'UINT':4294967295},'bigint_field':{'INT':9223372036854775807},'float_field':{'FLOAT':100.50},'double_field':{'FLOAT':100.512123},'date_field':{'DATE':'2025-04-06T14:43:08.4133434Z'},'time_field':{'TIME':'2025-04-06T14:43:08.4133434Z'},'datetime_field':{'DATE':'2025-04-06T14:43:08.4133434Z'},'timestamp_field':{'DATE':'2025-04-06T14:43:08.4133434Z'},'mediumblob_field':{'BYTES':'https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/picture.jpg'},'set_field':{'TEXT':'one'}}]" \
--trn true \
--dbc "mysql://bayselonarrend:***@127.0.0.1:3306/" \
--tls "{'use_tls':true,'accept_invalid_certs':true}"
Результат
{
"commit": {
"result": true
},
"result": true,
"rows": 1,
"errors": []
}