The list of columns can only apply to the table you've just named -
that's the only thing that makes sense.
That's true for a SELECT from a single table, too, but the qualified
syntax is allowed there. Also, this is allowed:
# update testtab set b = testtab.b * 3;
But this isn't:
# update testtab set testtab.b = testtab.b * 3;
Arguably a tad inconsistent. I don't know what the OP's rationale was,
but I can imagine that allowing the syntax on INSERT might simplify the
generation of SQL in certain circumstances. There's also the Principle
of Least Surprise, etc.
- John D. Burger
MITRE