| From: | "Jim C(dot) Nasby" <jnasby(at)pervasive(dot)com> |
|---|---|
| To: | Edmund(dot)Bacon(at)elb_lx(dot)onesystem(dot)ca, ebacon(at)onesystem(dot)com |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: When does a check constraint execute? |
| Date: | 2006-03-27 11:52:39 |
| Message-ID: | 20060327115239.GX80726@pervasive.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Fri, Mar 24, 2006 at 11:25:35AM -0700, Edmund(dot)Bacon(at)elb_lx(dot)onesystem(dot)ca wrote:
> test-# $$ select not exists
> test$# (select * from test_dates t1
> test$# where 1 < ( select count(*) from test_dates t2
> test$# where (t1.from_date, t1.to_date) overlaps
> test$# (t2.from_date, t2.to_date)) )$$;
<pet-peeve>
If you only want to know if something exists, do NOT use count!
> test$# (select * from test_dates t1
> test$# where EXISTS ( select * from test_dates t2
> test$# where (t1.from_date, t1.to_date) overlaps
> test$# (t2.from_date, t2.to_date)) )$$;
On a small dataset you may not notice much difference, but you'll
certainly see it on a large dataset.
</pet-peeve>
--
Jim C. Nasby, Sr. Engineering Consultant jnasby(at)pervasive(dot)com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jim C. Nasby | 2006-03-27 12:03:18 | Re: PostgreSQL support on Redhat Advance Server 2.1 |
| Previous Message | Martijn van Oosterhout | 2006-03-27 11:42:25 | Re: Converting a database from LATIN1 to UTF-8 |