From: | Johnny Luong <johnny(dot)luong(at)trustcommerce(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Cc: | dmp <danap(at)ttc-cmc(dot)net> |
Subject: | Re: issuing insert preparedstatement queries with default values |
Date: | 2010-01-09 02:52:03 |
Message-ID: | 4B47EF53.6090404@trustcommerce.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
dmp wrote:
|> -----BEGIN PGP SIGNED MESSAGE-----
|> Hash: SHA1
|>
|> Hi,
|>
|> Is there a way to use the DEFAULT per column value on an INSERT sql in
|> PG through the PreparedStatement JDBC API? It'd be nice so that I don't
|> have to maintain a secondary list of PreparedStatements or a list of
|> default values maintained outside of the database definition.
|>
|> e.g:
|>
|> INSERT INTO foo (a, b) (?, ?)
|>
|> where b has a default value in the database and a is something that I
|> might set to some other value.
|>
|>
|> I'm using postgresql-8.3-603.jdbc4.jar against a 8.3 postgresql server.
|>
|> Thanks,
|> Johnny
|
|
| I know this may be not the appropriate approach, but when a user enters
| default I just skip the PrepareStatement value assignment for that field
| and set in the initial assignment as such. See example below.
|
| danap.
|
|
| --
| -- MyJSQLView SQL Dump
| -- Version: 3.06
| -- WebSite: http://myjsqlview.org
| --
| -- Host: 127.0.0.1
| -- Generated On: 2010.01.08 AD at 07:07:55 MST
| -- SQL version: PostgreSQL 8.3.3
| -- Database: key_tables
| --
|
| -- ------------------------------------------
|
| --
| -- Table structure for table "public"."key_table4"
| --
|
| CREATE TABLE "public"."key_table4" (
| "avatar_id" integer DEFAULT 0 NOT NULL,
| "user_id" integer DEFAULT 0 NOT NULL,
| "bing_id" smallint DEFAULT 0 NOT NULL,
| PRIMARY KEY ("avatar_id","user_id")
| );
|
| TableEntryForm addUpdateTableEntry() Connection Created
| INSERT INTO "public"."key_table4" ("avatar_id", "user_id", "bing_id")
| VALUES (?, ?, default)
| TableEntryForm addUpdateTableEntry() Connection Closed
|
The only issue with this approach I think is that I would probably have
to use a normal java.sql.Statement to perform the load and the actual
table I'm dealing with is a legacy table with 60+ columns, some of which
have defaults already in place. I already explicitly setup the query
and set each individual parameter so I can avoid the reparsing efforts
but I'm having to actually take the defaults from the database and
putting them into the code...
Thanks for the help though.
Johnny Luong
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAktH71MACgkQnQTBLXttTeUY4QCfbaBr2jnsG3Fg6DUhWZmsu0wQ
ZmsAn3WwFdKFbVXOERURCekivEUCVGBf
=e606
-----END PGP SIGNATURE-----
From | Date | Subject | |
---|---|---|---|
Next Message | Srinivas Gunnam | 2010-01-11 12:58:02 | Throwing NumberFormat exception for preparedStatement.setObjcet() |
Previous Message | dmp | 2010-01-09 02:15:01 | Re: issuing insert preparedstatement queries with default values |