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
.