Re: HOWTO pass "default value" to PQexecParams?
| От | Volkan YAZICI |
|---|---|
| Тема | Re: HOWTO pass "default value" to PQexecParams? |
| Дата | |
| Msg-id | 20060107094455.GA634@alamut обсуждение исходный текст |
| Ответ на | HOWTO pass "default value" to PQexecParams ? (JiangWei <jw.pgsql@sduept.com>) |
| Ответы |
Re: HOWTO pass "default value" to PQexecParams?
|
| Список | 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 по дате отправления: