Re: use null or 0 in foreign key column, to mean "no value"?

From: Alban Hertroys <haramrae(at)gmail(dot)com>
To: Robert Nikander <rob(dot)nikander(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: use null or 0 in foreign key column, to mean "no value"?
Date: 2015-06-27 11:00:16
Message-ID: E1D87314-AF30-4D8C-B78E-8E369000D861@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


> On 27 Jun 2015, at 5:59, Robert Nikander <rob(dot)nikander(at)gmail(dot)com> wrote:
> In application code, prepared statements want to say: `select * from items where color_id = ?` and that `?` might be a int or null, so that doesn’t work.

You could add another parameter to test which expression to 'activate' in the query, something like:

select * from items where ('notnull' = ? and color_id = ?) or ('null' = ? and color_id is null);

Of course, with those _positional_ query parameters that means you need to add the same value TWICE into the query. You wouldn't need to with _named_ query parameters, if those are available to you.

Alban Hertroys
--
If you can't see the forest for the trees,
cut the trees and you'll find there is no forest.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Gerdan Rezende dos Santos 2015-06-27 13:32:39 HA
Previous Message John McKown 2015-06-27 04:50:08 Re: use null or 0 in foreign key column, to mean "no value"?