Syntax troubles.
What is the proper syntax for using FROM ONLY table_name in an UPDATE
statement?
According to the docs, In a FROM clause, I should be able to use the
ONLY keyword
preceding the table name. This throws an error:
UPDATE FROM ONLY people SET color = 'cyan' WHERE usr_pkey = 1;
What is the proper syntax for specifying FROM ONLY in the inheritance
statement?
This also throws an error:
CREATE TABLE people_history (
hist_pkey SERIAL NOT NULL PRIMARY KEY,
hist_tstamp timestamp DEFAULT CURRENT_TIMESTAMP
) INHERITS ONLY (people);
What does GUC stand for? ;)
Thanks!
Scott
On Mar 22, 2005, at 6:55 PM, Stephan Szabo wrote:
>
> On Tue, 22 Mar 2005, Scott Frankel wrote:
>
>>
>> This is weird. I have two tables: one inherits from the other. And
>> I
>> have a
>> rule that populates the inherited table with changes from the first.
>> When I
>> update a row in the first table, I get an ever-larger number of rows
>> added to
>> both it and the inherited table. i.e.:
>>
>> update 1 yields 2 new rows
>> update 2 yields 6 new rows
>> update 3 yields 42 new rows
>> update 4 yields 1806 new rows
>>
>> I'm clearly doing something wrong ;)
>
> I think you need to be using ONLY (or changing the sql_inheritance GUC
> variable) in all the queries on people in order to not also be getting
> rows from people_history in the SELECT and UPDATE (and in fact changing
> the select and update statements to FROM ONLY people seems to work for
> me).
>