
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.03.2015, 14:13
|
|||
|---|---|---|---|
|
|||
Как делать UPDATE для типа данных json в PosrgeSQL |
|||
|
#18+
Здравствуйте есть json массив param: ["123",[23,0,"12:02"]] Требуется обновить param->1->0 UPDATE ah_library SET param->1->0 = 1; [Err] ОШИБКА: ошибка синтаксиса (примерное положение: "->") Как это сделать? Неужели способа кроме как вытащить весь массив param в Java и там ему заменить значение нету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2015, 15:33
|
|||
|---|---|---|---|
|
|||
Как делать UPDATE для типа данных json в PosrgeSQL |
|||
|
#18+
GeneralprogerЗдравствуйте есть json массив param: ["123",[23,0,"12:02"]] Требуется обновить param->1->0 UPDATE ah_library SET param->1->0 = 1; [Err] ОШИБКА: ошибка синтаксиса (примерное положение: "->") Как это сделать? Неужели способа кроме как вытащить весь массив param в Java и там ему заменить значение нету? С т.з. базы json по большому счету просто простыня текста... так что в общем случае да - вытаскивать на приложение и там менять. Если вам такое понадобилось делать часто - у вас неправильный дизайн базы и это поле (поля) должны быть не в json а в основной таблице. Если сильно постараться можно попробовать Json разобрать запросом и собрать назад. Но это неудобно в общем случае. См: тут например. --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2015, 19:42
|
|||
|---|---|---|---|
Как делать UPDATE для типа данных json в PosrgeSQL |
|||
|
#18+
Generalproger, update в базе -- это дублирование всей записи (а если джейсон килобайтный, а то и более -- то представьте себе цену) да и редактирование json-а, как переменной, -- это ещё и разборка сборка его через присвоение его всего каким-то переменным, один -- исходной, второй -- выходной, ну и в промежутках преобразования, а не как бы хотелось -- поменять сво-во объекта по указателю, ничего не разбирая руками и т.п.. (может быть в перл его кстати дешевле будет запихать, и там надругаться -- там похожие объекты есть, надо покумекать). т.ч. если вы используете json -- вы либо идиот, либо очень хорошо представляете себе цену этого шага. второе, очевидно, к вам пока не относится. такие дела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2015, 22:50
|
|||
|---|---|---|---|
|
|||
Как делать UPDATE для типа данных json в PosrgeSQL |
|||
|
#18+
лопата, Почитал по этой теме, пожалуй вы правы, в данном случае он не настолько нужен. А в целом JSON мне кажется использовать очень удобно если редко обновлять, или выборка элемента это тоже высокая нагрузка на БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2015, 01:30
|
|||
|---|---|---|---|
Как делать UPDATE для типа данных json в PosrgeSQL |
|||
|
#18+
Generalproger, есть многие штуки, которые иногда сильно ускоряют некоторые вещи, в т.ч. массивы. кое-что можно упростить через hstore, который якобы слабее джейсона, но в плоском случае удобнее -- у него конкатенация есть. а именно -- хранение переменного число атрибутов, тем не менее индексируемого , в отличие от EAV. для json скорее всего тоже есть ниша -- когда апдейты редки, или можно с ними смириться, в том случае, когда по json возможен какой-нито полезный функциональный индекс, частый в пользовании. (всё от того, что доступные всяким негодяям в М-системах самопальные индексы по чему угодно нам не доступны -- нельзя повесить смешенный индекс на комбинации полей и выражений из 2-х таблиц, да и по комбинации строк одной (типа gist на ARRAY (SELECT fld FROM tbl WHERE main_id .... ) ) -- не вешается. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.03.2015, 11:37
|
|||
|---|---|---|---|
|
|||
Как делать UPDATE для типа данных json в PosrgeSQL |
|||
|
#18+
Если нужно много работать с JSON, рекомендую установить plv8. Для javascript / coffeescript JSON - родной тип данных, и работать с ним легко и приятно. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1998106]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
185ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 440ms |

| 0 / 0 |
