Verwenden des Rückgabewerts von DELETE für UPDATE in Postgres

Ich muss eine Tabelle mit einem Wert aktualisieren, der aus einer anderen Tabelle gelöscht wurde. Die Situation ist ein Kommentar-Voting-Scorekeeper ähnlich dem auf SO. Ich benutze Python, um die Postgres zu bearbeiten, aber das sollte keinen Unterschied machen.

query="""
UPDATE comment SET score=score-(DELETE FROM history
                                WHERE commentId=%(commentId)s AND
                                      userIdentity=%(userIdentity)s RETURNING vote)
WHERE commentId=%(commentId)s;
"""
cursor.execute(query, data)

Der Fehler tritt bei auf(DELETE FROM; Es tritt ein Syntaxfehler auf. Ich kann das ersetzenDELETE Aussage mit einemSELECT Aussage und es wird funktionieren, fehlt hier etwas? Ich möchte den Rückgabewert in einem Update verwenden. Ist das möglich? Alles hilft.

Relevantes Schema:

CREATE TABLE history (
    commentId bigint,
    vote int,
    userIdentity varchar(256),
);
CREATE TABLE comment (
    id bigint,
    score bigint,
);

history.vote ist normalerweise1 oder-1.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage