Update using non-existent fields does not throw an error

From: Rob Richardson <RDRichardson(at)rad-con(dot)com>
To: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Update using non-existent fields does not throw an error
Date: 2015-03-16 16:02:32
Message-ID: 67D108EDFAD3C148A593E6ED7DCB4BBD01153EF2B8@RADCONWIN2K8PDC.radcon.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Greetings!

An update query is apparently succeeding, even though the query refers to fields that do not exist. Here's the query:

update inventory set
x_coordinate = (select x_coordinate from bases where base = '101'),
y_coordinate = (select y_coordinate from bases where base = '101')
where charge = 100

-- select x_coordinate, y_coordinate from bases where base = '101'

When I run the update query, it tells me that the query succeeded and that four records were updated, which is what I expect. But when I looked at the inventory table, I found that the four records were unchanged. So, I tried to check the values of the base coordinates by running the select statement shown above. That statement threw an error complaining that x_coordinate and y_coordinate did not exist. This is correct; I should have been querying a view that includes those fields. But why didn't the update statement throw an error?

RobR

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alban Hertroys 2015-03-16 16:07:21 Re: Update using non-existent fields does not throw an error
Previous Message Little, Doug C 2015-03-16 15:23:04 psql sqlstate return code access