Re: Find one record

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Joseph Bove <jbove(at)vetstar(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Find one record
Date: 2003-09-18 17:53:57
Message-ID: 200309181053.57709.josh@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Joseph Bove 2003-09-18 18:01:05 Find one record
Previous Message Josh Berkus 2003-09-18 17:50:34 Re: [PERFORM] How to force an Index ?