Hetzelfde als geldige UPDATE
verklaring in Postgre:
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
U kunt niet zomaar een tabelalias gebruiken in de FROM
clausule als doeltabel in de UPDATE
clausule. De (één!) tabel die moet worden bijgewerkt komt direct na UPDATE
zoekwoord (als we een mogelijke ONLY
ignore negeren zoekwoord ertussen). Je kunt daar een alias toevoegen als je wilt. Dat is de directe oorzaak van je foutmelding, maar er is meer.
De kolom die moet worden bijgewerkt, komt altijd uit de ene tabel die moet worden bijgewerkt en kan niet worden gekwalificeerd.
U hoeft de doeltabel in de FROM
. niet te herhalen clausule - behalve in speciale gevallen zoals deze:
Deze optionele toevoeging kan zinloze kosten vermijden door updates die niets veranderen te onderdrukken:
AND iw.warn_docket_no IS DISTINCT FROM iv.viol_docket_no
Zie:
Meer in de uitstekende handleiding op UPDATE
.