Lo stesso di UPDATE valido dichiarazione in Postgres:
UPDATE incode_warrants iw
SET warn_docket_no = iv.viol_docket_no
FROM incode_warrantvs iwvs
JOIN incode_violations iv ON iv.viol_citation_no = iwvs.warnv_citation_no
AND iv.viol_viol_no = iwvs.warnv_viol_no
WHERE iw.warn_rid = iwvs.warnv_rid;
-- AND iw.warn_docket_no IS DISTINCT FROM iv.viol_docket_no -- see below
Non puoi semplicemente usare un alias di tabella nel FROM clausola come tabella di destinazione in UPDATE clausola. La (una!) tabella da aggiornare arriva subito dopo UPDATE parola chiave (se ignoriamo un possibile ONLY parola chiave in mezzo). Puoi aggiungere un alias lì se lo desideri. Questa è la causa immediata del tuo messaggio di errore, ma c'è dell'altro.
La colonna da aggiornare è sempre della tabella da aggiornare e non può essere qualificata come tabella.
Non è necessario ripetere la tabella di destinazione nel FROM clausola - salvo casi speciali come questo:
Questa aggiunta facoltativa può evitare costi inutili sopprimendo gli aggiornamenti che non cambiano nulla:
AND iw.warn_docket_no IS DISTINCT FROM iv.viol_docket_no
Vedi:
Altro nell'eccellente manuale su UPDATE .