Гарантировать записи
Добавляет записи или обновляет данные существующих при совпадении ключевых полей
- Параметры
- Расширенный вызов ?
Функция ГарантироватьЗаписи(Знач Таблица, Знач МассивДанных, Знач КлючевыеПоля = "", Знач Транзакция = Истина, Знач Соединение = "") Экспорт
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|---|---|---|---|---|
| Таблица | --table | Строка | ✔ | Имя таблицы |
| МассивДанных | --rows | Массив Из Структура | ✔ | Массив структур данных строк: Ключ > поле, Значение > значение поля |
| КлючевыеПоля | --unique | Массив Из Строка | ✖ | Имя или имена ключевых полей таблицы для проверки уникальности |
| Транзакция | --trn | Булево | ✖ | Истина > добавление записей в транзакции с откатом при ошибке |
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
Возвращаемое значение
Соответствие Из КлючИЗначение - Результат выполнения запроса
Для текущего метода нет дополнительных параметров расширенного вызова.
подсказка
В качестве ключевых можно указывать UNIQUE и PRIMARY KEY поля. Если поля не указаны, то уникальность определяется по всем подходящим полям
Пример использования для 1С:Предприятие/OneScript
База = "/tmp/vnnmoosn.qqb.sqlite";
Таблица = "test_merge";
МассивДанных = Новый Массив;
СтруктураСтроки1 = Новый Структура;
СтруктураСтроки1.Вставить("id" , 1);
СтруктураСтроки1.Вставить("name" , "Vitaly");
СтруктураСтроки1.Вставить("age" , 25);
СтруктураСтроки1.Вставить("salary", 1000.12);
СтруктураСтроки2 = Новый Структура;
СтруктураСтроки2.Вставить("id" , 2);
СтруктураСтроки2.Вставить("name" , "Lesha");
СтруктураСтроки2.Вставить("age" , 20);
СтруктураСтроки2.Вставить("salary", 200.20);
МассивДанных.Добавить(СтруктураСтроки1);
МассивДанных.Добавить(СтруктураСтроки2);
КлючевыеПоля = Новый Массив;
Кл ючевыеПоля.Добавить("id");
Результат = OPI_SQLite.ГарантироватьЗаписи(Таблица, МассивДанных, КлючевыеПоля, , База);
- Bash
- CMD/Bat
# JSON данные также могут быть переданы как путь к файлу .json
oint sqlite ГарантироватьЗаписи \
--table "test_merge" \
--rows "[{'id':'1','name':'Vitaly Updated','age':'25','salary':'1500.5'},{'id':'3','name':'Anton','age':'30','salary':'3000'}]" \
--unique "['id']" \
--db "/tmp/5eyl3glz.lbf.sqlite"
:: JSON данные также могут быть переданы как путь к файлу .json
oint sqlite ГарантироватьЗаписи ^
--table "test_merge" ^
--rows "[{'id':'1','name':'Vitaly Updated','age':'25','salary':'1500.5'},{'id':'3','name':'Anton','age':'30','salary':'3000'}]" ^
--unique "['id']" ^
--db "/tmp/5eyl3glz.lbf.sqlite"