Comment faire pour ajouter un nouvel élément dans le tableau, colonne de type PostgreSQL
Im en utilisant PostgreSQL pour mon application,
La tâche sera comme ceci
Il y a des utilisateurs qui utilisent mon application, et j'ai besoin de maintenir la notification pour chacun d'eux en fonction de leur activité donc, je reçois beaucoup, beaucoup de notifications pour chaque utilisateur.
donc, en général, nous venons de mettre toutes les notifications dans un autre tableau et nous ne carte avec ID d'utilisateur, de sorte que nous pouvons extraire seulement eux, mais maintenant Im penser à utiliser json/array type de données, donc je ne peux il suffit de mettre la totalité de la notification des tableaux/json dans la cellule de chaque ligne d'utilisateur.
Lequel est le mieux, le stockage json ou un tableau?( Im en utilisant PHP côté serveur)
et si nous choisir une parmi les deux, permet de dire que nous avons quelque 10 notifications, et j'ai eu le 11e, comment pouvons-nous ajouter le nouvel élément dans le tableau/objet json en exécution unique(peut être mise à JOUR de la déclaration)?
Je ne veux pas aller au moyen de base comme sélectionner la ligne, obtenir le tableau existant/json ajouter le nouvel élément à la fin(processus avec PHP) et le mettre à JOUR en arrière - ici, il prend deux exécutions où un autre changement peut se produire et qui apporte dataloss
donc, il y a une façon de faire de la requête de mise à JOUR qui ajoute un nouvel élément ou modifie l'existant/élément de nœud dans la gamme/json obejct types de PostgreSQL?
OriginalL'auteur CodeRows | 2015-03-28
Vous devez vous connecter pour publier un commentaire.
Pour ajouter un élément à un tableau dans PostgreSQL, vous pouvez utiliser l'opérateur || ou array_append fonction.
Avec l'opérateur | |
Avec array_append fonction
Aussi, vous pouvez visiter cette page pour le tableau, http://www.postgresql.org/docs/current/interactive/functions-array.html
Je ne sais pas comment le faire avec json type de données.
si vous souhaitez utiliser des paires clé-valeur, hstore type de données peut être une meilleure choix pour vous.
Cela fonctionne pour jsonb (et de la même façon avec json, je crois)
update table set array_field = array_field || '{"a":"b"}'::jsonb
OriginalL'auteur samed.yildirim