Re: Find one record - Mailing list pgsql-performance

From Josh Berkus
Subject Re: Find one record
Date
Msg-id 200309181053.57709.josh@agliodbs.com
Whole thread Raw
In response to Find one record  (Joseph Bove <jbove@vetstar.com>)
List pgsql-performance
Joseph,

> I hope this to be a simple question. I have need to simply read the first
> row in a given table. Right now,  I have some legacy code that selects all
> rows in a table just to see if the first row has a certain value.

Your problem is conceptual: in SQL, there is no "first" row.

If you want to just pick a single row at random, do
SELECT * FROM table LIMIT 1;

Or if you have a primary key id, you could for example return the row with the
lowest id:

SELECT * FROM table ORDER BY id LIMIT 1;

> The code is seeking to see if an update has been run or not. A hypothetical
> scenario would be: has an update been run to populate data into a new
> column in a table. Neither the data nor any of the rows are consistently
> known. So the test selects all rows, tests the first row and then ends if
> the column has a value.

I'd write an ON UPDATE trigger, personally, to fire and write data somewhere
else whenever the table is updated.  Much more reliable ....

--
Josh Berkus
Aglio Database Solutions
San Francisco

pgsql-performance by date:

Previous
From: Josh Berkus
Date:
Subject: Re: How to force an Index ?
Next
From: Josh Berkus
Date:
Subject: Re: How to force an Index ?