Re: HOWTO pass "default value" to PQexecParams? - Mailing list pgsql-interfaces

From Volkan YAZICI
Subject Re: HOWTO pass "default value" to PQexecParams?
Date
Msg-id 20060107094455.GA634@alamut
Whole thread Raw
In response to HOWTO pass "default value" to PQexecParams ?  (JiangWei <jw.pgsql@sduept.com>)
Responses Re: HOWTO pass "default value" to PQexecParams?  (JiangWei <jw.pgsql@sduept.com>)
List pgsql-interfaces
AFAIK, it's not possible to point the field's default value using a
special value in the related array member. Because, you cannot declare
any special value in the array: NULL will be treated as NULL and other
char values as is.

(Recommended.) Why don't you omit id in the target table fields?
For instance:
 sprintf(sql_cmd, "INSERT INTO test ("                  (id_will_be_default) ? "" : "id, "                  "name)
VALUES("                  "..."); PQexecParams(conn, sql_cmd, ...);
 

You can also learn the default value of the related field too. (For
more information, run psql with -E parameter and type \d <table>.)

Furthermore, it's possible to define a RULE like:
 ON INSERT IF NEW.id = 0   USE DEFAULT

This will assume 0 as a reference to default value.


HTH.
Regards.


On Jan 06 09:16, JiangWei wrote:
> Create Table test (
>    id int4 not null,
>    name text default '<noname>'
> );
> 
> PQexec (conn, "INSERT INTO test(id, name) VALUES (100,default)" ); // OK.
> 
> PQexecParams (conn, "INSERT INTO test(id, name) VALUES ($1, $2)" ); // 
> $1=100, $2= ????


pgsql-interfaces by date:

Previous
From: JiangWei
Date:
Subject: Re: [C API] Is there a nice way to get table/column
Next
From: Ludek Finstrle
Date:
Subject: libpq and auth type