|
|
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
Имеем переменную типа JSON В ней находятся данные, которые необходимо вставить в таблицу. Можно, конечно вручную выбирать поля в определенном порядке и формировать строку для выполнения вставки данных, но надеюсь, что есть более простой способ. Помогите пожалуйста кто знает как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 21:13:02 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
хотелось бы функцию типа json_to_row... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 21:13:55 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
sp, http://www.postgresql.org/docs/9.2/static/functions-json.html - 92 но http://www.postgresql.org/docs/9.3/static/functions-json.html - 93 уже есть! щас будет скоро совсем json_populate_record json_populate_recordset ну и щас hstore http://www.postgresql.org/docs/9.2/static/hstore.html - 92 populate_record ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 22:34:16 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, спасибо за информацию, попробовал, но нифига не получается: json_populate_record для ключевого поля возвращает null (естественно когда вставляем новую запись) и при попытке вставить данные получаю ошибку Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Получаем ошибку при выполнении: Код: plaintext 1. id в данной таблице - serial; попытка перечислить поля таблицы в конструкции Insert into (c id и без него) приводит к ошибке "INSERT has more target columns than expressions" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 23:16:23 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
Вот полный пример Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2013, 23:36:47 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
разобрался - вставку нужно делать так Код: plsql 1. но перед вставкой необходимо id присвоить правильное значения ключа id и заполнить также все поля имеющие значения по-умолчанию!!! тут как-то не очень удобно! Получается много геммороя - надо выяснить какие поля ключевые и имеющие значения по-умолчанию и если они в переменной JSON раны null то их надо заполнить значениями, а для этого их надо узнать. В PG, к сожалению, не проходит даже такой оператор, который в других базах работает на ура Код: plsql 1. надо обязательно записать так Код: plsql 1. грустно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 00:18:25 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
грустно и от того что в других БД если поле имеет значение по-умолчанию и при вставке оно равно null - БД его заполняет самостоятельно, а в PG надо либо узнать значения поля по-умолчанию, либо сформировать строку оператора insert into и вместо ключей и полей по-молчанию вставить константу DEFAULT - однако и то и другое - геморрой!(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 00:23:52 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
ну вы просто null не передавайте. как встретите в hstore null - так и выкалывайте - а то я за вас рад -как же null вставлять в поле, если там какая-то сволочь дефолт прописала, но поле всё ж таки нуллабл, и мы именно null и хотим вставить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 01:20:57 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
default but nullable, дык json_populate_record(null::core.test, opt) сам вставляет отсутствующие поля и заполняет их NULL! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 01:21:55 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spdefault but nullable, дык json_populate_record(null::core.test, opt) сам вставляет отсутствующие поля и заполняет их NULL!ру какбе врать-врите, но не заговаривайтесь вот это вот Код: plsql 1. - пупкин написал ? рассказать вам, что вы делаете этим оператором ? или сами догадаетесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 08:20:44 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
пупкин написалрассказать вам, что вы делаете этим оператором ? или сами догадаетесь расскажите, будьте любезны - интересно узнать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:00:08 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
для информации Код: plsql 1. 2. 3. 4. 5. 6. выводит Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:01:49 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
для информации Код: plsql 1. 2. 3. 4. 5. 6. 7. выводит Код: javascript 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:02:46 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
из документации json_populate_record(base anyelement, from_json json, [, use_json_as_text bool=false] Expands the object in from_json to a row whose columns match the record type defined by base. Conversion will be best effort; columns in base with no corresponding key in from_json will be left null. A column may only be specified once. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:06:33 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spпупкин написалрассказать вам, что вы делаете этим оператором ? или сами догадаетесь расскажите, будьте любезны - интересно узнатьну вы блин даёте делаем Код: plsql 1. и смотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:41:41 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
ЗЫ если не всё ещё понятно, делаем Код: plsql 1. и медитируем на результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:44:03 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwqЗЫ если не всё ещё понятно, делаем Код: plsql 1. и медитируем на результат медитировал долго над обеими случаями, но... ERROR: syntax error at or near "SELEСT" LINE 1: SELEСT (null::core.test).*; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 09:54:08 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
может будем разговаривать как специалисты, а не как работники околоакультных наук? скажите что вы имеете сказать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 10:23:33 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
sp, null в поля записи пишите Вы сами, а не json_populate_record ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 10:36:03 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spможет будем разговаривать как специалисты, а не как работники околоакультных наук? скажите что вы имеете сказатьоколо - это ваше кредо вы даже простой селект выполнить не можете, что наводит. далее рассказываю, что происходит в Код: plsql 1. -- null кастится в тип core.test, т.е. создается объект (резултьтат выражения) типа core.test, все поля которого инициированы именно null - потому что вы сами об этом попросили. (ну а далее популейт занимается тем, что заменяет в этом созданном вами рекорде, те поля, чьи кеи он обнаруживает в hstore на те значения, которые он в hstore находит) -- т.е., как видите, никакой магии, и чтобы обнаружить отсутствие магии - совсем невредно было некоторое время помедитировать, а не надрачивать на непонятную формулу ~~ популейт(что-то-там) как на неведомое, но непременно магическое синтаксическое чЮдо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 11:47:43 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
sp ERROR: syntax error at or near "SELEСT" LINE 1: SELEСT (null::core.test).*;это у меня при полуслепом наборе translate англиница->руссица в SELECT отработал, что очевидно просто по подсветке синтаксиса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 11:54:35 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
sp, если не боитесь то можно типа такого попробовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 12:11:25 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
Ёшsp, если не боитесь то можно типа такого попробовать :) Код: sql 1. 2. 3. 4. 5. 6. 7. ну если ажсторе аж установлено - можно не лазать по систейблам, и слегка забыть как они устроены. а прямо Код: plsql 1. 2. 3. 4. 5. для FOREACH fld IN ARRAY akeys(hstore(null::test)) уже достаточно, нет ? кстати интересно, много такое поюзание ажсторе запросам к системным проиграет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 12:46:31 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwqну если ажсторе аж установлено - можно не лазать по систейблама как значения по умолчанию получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 12:50:03 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
Ёшqwwqну если ажсторе аж установлено - можно не лазать по систейблама как значения по умолчанию получить?а зачем ? пусть лошадь думает - ку неё голова большая тьфу пусть трактор пашет - он железный т.е пусть сам пж и получает - ему динамически INSERT надо правильно пошить а не values мне как-то вот так кажется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 12:54:29 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwqspможет будем разговаривать как специалисты, а не как работники околоакультных наук? скажите что вы имеете сказатьоколо - это ваше кредо вы даже простой селект выполнить не можете, что наводит. далее рассказываю, что происходит в Код: plsql 1. -- null кастится в тип core.test, т.е. создается объект (резултьтат выражения) типа core.test, все поля которого инициированы именно null - потому что вы сами об этом попросили. (ну а далее популейт занимается тем, что заменяет в этом созданном вами рекорде, те поля, чьи кеи он обнаруживает в hstore на те значения, которые он в hstore находит) -- т.е., как видите, никакой магии, и чтобы обнаружить отсутствие магии - совсем невредно было некоторое время помедитировать, а не надрачивать на непонятную формулу ~~ популейт(что-то-там) как на неведомое, но непременно магическое синтаксическое чЮдо. вообще ничего не понял, вы о чем?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 12:57:34 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
sp<> вообще ничего не понял, вы о чем?? кто бы сомневалсо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 12:58:24 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwq, вам не с кем поругаться рядом, или недостает в жизни экстрима?? переходить на личности при разговоре с незнакомыми людьми - по крайней мере не культурно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:00:56 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
Ёш, спасибо за помощь - я решил пока проблему за счет создания строкового представления команды, путем подстановки ненулевых полей и их значений, но думаю что json_populate_record можно было бы довести до ума, чтобы он самостоятельно брал инициированную запись указанного типа со значениями по-умолчанию, а в таком виде данный оператор малопригоден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:08:49 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spqwwq, вам не с кем поругаться рядом, или недостает в жизни экстрима?? переходить на личности при разговоре с незнакомыми людьми - по крайней мере не культурно...ну какбе я пытаюсь обращаться с вами как со спецом, как просили но ежели хотите - можно и более гуманитарно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:11:08 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwq, я всего лишь просил выразить свою мысль ясно и технически грамотно, без предложений пойти помедитировать ... по поводу null::test - и до этого было все было понятно - чай в почти в евроОпе живем, аглицкий понимаем, инструкцию читали! мои претензии к json_populate_record написаны постом выше - имхо бесполезен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:17:33 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spqwwq, я всего лишь просил выразить свою мысль ясно и технически грамотно, без предложений пойти помедитировать ... по поводу null::test - и до этого было все было понятно - чай в почти в евроОпе живем, аглицкий понимаем, инструкцию читали! мои претензии к json_populate_record написаны постом выше - имхо бесполезенгде вы живете, и какия говоры понимаете -нам по барабану а вот околесицу вас и просили не нести а дабы вы смогли таки начать выражаться технически грамотно - просили уединенно помедитировать немного над уже написанными вами же простыми вещами, а не терять в очередной раз лицо а что там полезно, что нет - полагаю не вашего разумения вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:36:59 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwqspqwwq, я всего лишь просил выразить свою мысль ясно и технически грамотно, без предложений пойти помедитировать ... по поводу null::test - и до этого было все было понятно - чай в почти в евроОпе живем, аглицкий понимаем, инструкцию читали! мои претензии к json_populate_record написаны постом выше - имхо бесполезенгде вы живете, и какия говоры понимаете -нам по барабану а вот околесицу вас и просили не нести а дабы вы смогли таки начать выражаться технически грамотно - просили уединенно помедитировать немного над уже написанными вами же простыми вещами, а не терять в очередной раз лицо а что там полезно, что нет - полагаю не вашего разумения вопрос в очередной раз поражаете мое воображение - вы себя тут кем видите?? пффессором или ментором?? или вам ктото сказал что вы тут самый умный?))) полагаю что и не вашего разумения вопрос кому и что выражать по поводу продукта тем более движимого желаниями и требованиями таких же разработчиков как я! вы тут на 2 страницы гадостей наговорили а по сути - ничего толкового (т.е. хоть мало мальски полезного) не сказали и при этом напускали пузырей и добавили туманности вокруг себя и своих выражений и пытаетесь меня учить жизни!?? ну и народ пошел...)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:51:10 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwq, думаю, что примером профессионализма и человеческого желания помочь людям для вас должен стать Ёш - поучитесь у него ПОМОГАТЬ людям! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 13:54:22 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spdefault but nullable, дык json_populate_record(null::core.test, opt) сам вставляет отсутствующие поля и заполняет их NULL! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 14:18:36 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spdefault but nullable, дык json_populate_record(null::core.test, opt) сам вставляет отсутствующие поля и заполняет их NULL! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 14:19:06 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwqspdefault but nullable, дык json_populate_record(null::core.test, opt) сам вставляет отсутствующие поля и заполняет их NULL! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 14:20:31 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwq, и что же вам мешает высказать ваши сокровенные знания пряма. а не строить ребусов и загадок? природная скромность? или боязнь ошибиться? Не бойтесь ошибаться - на ошибках учатся! Да , "он сам заполняет" - переводится как он сам предоставляет запись со значениями всех полей равными null ну и что вы далее хотели сказать? можете посоветовать как получить их не null? ну так не стисняйтесь - скажите пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 14:29:39 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
spqwwq, и что же вам мешает высказать ваши сокровенные знания пряма. а не строить ребусов и загадок? природная скромность? или боязнь ошибиться? Не бойтесь ошибаться - на ошибках учатся! Да , "он сам заполняет" - переводится как он сам предоставляет запись со значениями всех полей равными null ну и что вы далее хотели сказать? можете посоветовать как получить их не null? ну так не стисняйтесь - скажите пожалуйста!-- всё божья роса с вами тут уже многократно и без обиняков поделились сакральным знанием - никто ,кроме как вы сами , не писал битым текстом "null::core.test" - что означает "взять объект типа "запись core.test" и заполнить все его поля null-ами. это делаете именно вы, а не магический json_populate_record, которому только и предложено (вами) подменить в уже построенном вами объекте все поля, для которых он найдет эти значения явно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 14:46:25 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
qwwq, магический json_populate_record в данном случае выполняет функцию переноса данных json->record вот я и говорю, что этот оператор, раз уж назвался populate_record, populaл бы данными по-умолчанию из системных таблиц, а в такой реализации это просто компактная форма записи цикла по полям json и заполнения ихними значеними полей записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 14:58:24 |
|
||
|
Вставить данные в таблицу из JSON объекта
|
|||
|---|---|---|---|
|
#18+
вы 2 страницы пытались мне показать ошибку в моем выражении?? я то думал у вас есть решение данной проблемы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2013, 15:00:05 |
|
||
|
|

start [/forum/topic.php?all=1&fid=53&tid=1998426]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 445ms |

| 0 / 0 |
