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).
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend