Ich kann mir nicht vorstellen, wie ich ein Element in einem PostgreSQL 9.3-Datentyp aktualisieren kann.
Mein Beispiel:
CREATE TABLE "user"
(
id uuid NOT NULL,
password character varying(255),
profiles json,
gender integer NOT NULL DEFAULT 0,
created timestamp with time zone,
connected timestamp with time zone,
modified timestamp with time zone,
active integer NOT NULL DEFAULT 1,
settings json,
seo character varying(255) NOT NULL,
CONSTRAINT id_1 PRIMARY KEY (id)
)
WITH (
OIDS=TRUE
);
ALTER TABLE "user"
OWNER TO postgres;
Der json Teil in "Profilen"
{
"Facebook": {
"identifier": "xxxxxxxxxxx",
"profileURL": "none",
"webSiteURL": "none",
"photoURL": "none",
"displayName": "test2 test2",
"description": "none",
"firstName": "test2",
"lastName": "test2",
"gender": 2,
"language": "none",
"age": "none",
"birthDay": "none",
"birthMonth": "none",
"birthYear": "none",
"email": "[email protected]",
"emailVerified": "none",
"Added": null,
"phone": "none",
"address": "none",
"country": "none",
"region": "none",
"city": "none",
"zip": "none"
},
"Google": {
"identifier": "xxxxxxxxxxxxxxxxxxxxxx",
"profileURL": "none",
"webSiteURL": "none",
"photoURL": "none",
"displayName": "test2 test2",
"description": "none",
"firstName": "test2",
"lastName": "test2",
"gender": 2,
"language": "none",
"age": "none",
"birthDay": "none",
"birthMonth": "none",
"birthYear": "none",
"email": "[email protected]",
"emailVerified": "none",
"Added": null,
"phone": "none",
"address": "none",
"country": "none",
"region": "none",
"city": "none",
"zip": "none"
}
}
Ich benutze x-edit für das Frontend und ich hatte gehofft, dass so etwas funktionieren würde, aber es funktioniert nicht:
UPDATE public.user
SET "profiles"->'Facebook'->'social'->'facebook' = 'test' WHERE` id='id'
Ich kann anscheinend keine Informationen zum Aktualisieren eines json-Datentyps finden.
quelle
Ich denke, Sie müssen das gesamte Feld auf Postgres 9.3 aktualisieren, zumindest ist dies das, was mir die Dokumentation sagt.
Das Aktualisieren einzelner Elemente in einem JSON-Dokument erfolgt in 9.4, wenn ich mich nicht irre.
quelle
Versuche dies
quelle