Re: Prepared statements and default values

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Assad Jarrahian <jarraa(at)gmail(dot)com>
Cc: David Wall <d(dot)wall(at)computer(dot)org>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Prepared statements and default values
Date: 2006-01-10 04:21:10
Message-ID: 377962F9-1235-4413-94AA-3E2BCBA12B59@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Actually, I don't think not specifying the column will work. This
works for insert, but not update.

I don't think there is a way using JDBC, as you can't even use the
keyword DEFAULT. The driver won't let you bind a string to a non-
string parameter.

Dave
On 9-Jan-06, at 11:02 PM, Assad Jarrahian wrote:

> thanks for your response David!
>
> Is that the only way, cause that surely does not seem easy when you
> have say 20 columns, of which 15 have default values.
>
> given all the combinations (sometimes this set of column values is
> needed to be default, otherwise another set .... and so on.
>
> Am I stuck with writing out all possible statements ...or is there
> another way?
>
> thanks.
> -assad
>
>
> On 1/9/06, David Wall <d(dot)wall(at)computer(dot)org> wrote:
>> You'll probably need to use two statements, so that when you want
>> to use
>> the default, you don't specify anything, and when you want a special
>> value, you use the command you gave.
>>
>> If you want the default, use:
>>
>> UPDATE usersettings SET serverurl = ? where username = ?
>>
>> If you want to specify, then use:
>>
>> UPDATE usersettings SET gpsfrequency = ? , serverurl = ? where
>> username = ?
>>
>> David
>>
>>
>> Assad Jarrahian wrote:
>>
>>> I have a preparedStatement with the following query
>>> "UPDATE usersettings SET gpsfrequency = ? , serverurl = ? where
>>> username = ? ;";
>>>
>>> In the db, the table userSettings has a default value specified for
>>> gps_frequency .
>>>
>>> So when I write code
>>> if (client.getSettings().getField
>>> (Settings.GPS_FREQUENCY).compareTo(""))==0)
>>> <what goes here> //pick up the default value from the db.
>>> else
>>> setUserSettings.setInt(++i,
>>> Integer.parseInt(client.getSettings().getField
>>> (Settings.GPS_FREQUENCY)));
>>>
>>>
>>> <what goes here> .. I basically want to send something that lets the
>>> db know to use the DEFAULT value. (its of type int0)
>>>
>>> So what does go here?
>>>
>>> any help would be much appreciated.
>>>
>>> -a
>>>
>>> ---------------------------(end of
>>> broadcast)---------------------------
>>> TIP 2: Don't 'kill -9' the postmaster
>>>
>>>
>>>
>>
>> ---------------------------(end of
>> broadcast)---------------------------
>> TIP 6: explain analyze is your friend
>>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Marc Herbert 2006-01-10 09:35:36 Re: Prepared statements and default values
Previous Message Assad Jarrahian 2006-01-10 04:02:18 Re: Prepared statements and default values