0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 15
|
|
Insert многомерного массива24.04.2017, 22:03. Показов 2602. Ответов 6
Метки нет Все метки)
(
Добрый вечер. Товарищи, подскажите, есть ли какая либо возможность инсерта в таблицу такого массива:
[ { idReq: 1, idUser: [ 173, 154, 163, 179 ] }, { idReq: 2, idUser: [ 191, 154 ] }, { idReq: 3, idUser: [] }, { idReq: 5, idUser: [] }, { idReq: 6, idUser: [] } ] Есть таблица связей. В ней колонка id, колонка idReq - int, и колонка idUser - int[]. По одной записи проблем с инсертом нет, через unnest массива юзеров, но как быть в этой ситуации? Цикл?
0
|
24.04.2017, 22:03 | |
Ответы с готовыми решениями:
6
Insert многомерного массива в базу MYSQL Как сделать Insert многомерного массива в бд Внутреннее устройство многомерного массива и неявное преобразование массива в указатель |
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 15
|
|||||||
25.04.2017, 09:15 [ТС] | |||||||
Изначально я делал так. У меня есть 2 переменные: $1 = [ 173, 154, 163, 179 ] - массив id юзеров $2 = 1 - id записи, которой принадлежат юзеры Делаем инсерт
id| id_request| id_user -----+-------------+------------------------------ 1 | 1 |{173, 154, 163, 179 }} Но это одна запись. То есть целый массив у меня приходит так: [ { idReq: 1, idUser: [ 173, 154, 163, 179 ] }, { idReq: 2, idUser: [ 191, 154 ] }, { idReq: 3, idUser: [] }, { idReq: 5, idUser: [] }, { idReq: 6, idUser: [] } ] Вот мне и нужно его сразу целиком записать. что бы было так: id| id_request| id_user -----+-------------+------------------------------ 1 | 1 |{{173, 154, 163, 179 }} 2 | 2 |{{ 191, 154 }} 3 | 3 |{{}} 4 | 5 |{{}} 5 | 6 |{{}}
0
|
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
|
||||||
25.04.2017, 12:53 | ||||||
У вас "целый массив" это что?? Тип данных JSON??
Если JSON, то и работать нужно с ним как с JSON. И синтаксис JSON соблюдать. Для INSERT работает конструкция INSERT... SELECT FROM. Вот примерный набросок
0
|
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 15
|
||
25.04.2017, 13:02 [ТС] | ||
![]() Вот, спасибо, я теперь понял примерную конструкцию инсерта подобных массивов, буду копать дальше.
0
|
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
|
||||||
25.04.2017, 16:34 | ||||||
Получилось вот такое поделие. Одна проблема - пустые JSON-массивы. Они (пустые массивы) проглатываются функцией json_array_elements, которая превращает JSON-массив в записи с элементами массива. А json_array_elements в свою очередь удобна и необходима (вместе с array_agg), чтобы из JSON-массива получить обычный массив целых INT[].
Пришлось обходить проблему пустых массивов через CTE и union all. Кто знает более изящное решение, может поделитесь.
1
|
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 15
|
|||||||||||||||||||||||||||
25.04.2017, 17:53 [ТС] | |||||||||||||||||||||||||||
Правда все равно возникает ряд сложностей. Работает без проблем в конструкторе базы. Но по факту запрос идет из Node.js строкой, там беда с кавычками и я создал функцию в постгресе
....
Имеем ошибку: error: invalid input syntax for type json detail: 'Expected ":", but found ",".', where: 'JSON data, line 1: {"{"idReq":1,"idUser":[173,154,163,179]",...', * по два \\ форум обрезает. ну если это важно. Я так понимаю, я как то не так передаю или формирую json объект? Добавлено через 8 минут p.s. В принципе, я мог сформировать массив и такого вида, может поможет? Правда тогда нужно переписать весь запрос. [ {1, [ 173, 154, 163, 179 ] }, { 2, [ 191, 154 ] }, { 3, [] }, { 5, [] }, { 6, [] } ] Добавлено через 1 минуту where: 'JSON data, line 1: {"{//"idReq//":1,//"idUser//":[173,154,163,179]}",...', Добавлено через 5 минут
Добавлено через 4 минуты Короче, заработало)) Спасибо тебе, добрый человек. Надо еще в этом запросе разобраться, ну что к чему. Добавлено через 27 секунд Короче, заработало)) Спасибо тебе, добрый человек. Надо еще в этом запросе разобраться, ну что к чему.
0
|
25.04.2017, 17:53 | ||||||
Помогаю со студенческими работами здесь
7
Cоздание многомерного массива - из 3х3 массива сделать 4х3
сотировка многомерного массива Вывод многомерного массива Перебор Многомерного массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
|
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
|
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
|
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров.
3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
|
Система статов в Unity
GameUnited 20.04.2025
Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . .
|
Статические свойства и методы в TypeScript
run.dev 20.04.2025
TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . .
|
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025
В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . .
|
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025
В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . .
|
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025
Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования.
. . .
|
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025
Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . .
|