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
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 ? |