Обсуждение: no value for numeric filed in SQL statement causes an error

Поиск
Список
Период
Сортировка

no value for numeric filed in SQL statement causes an error

От
juerg.rietmann@pup.ch
Дата:
Hi there

I have a table with char and int fields. From my form  I get no values back
for int fields when they are left blank. This causes the SQL insert to
fail.

field     type
name char
id   int2
city char

insert into table (name,id,city) values ('roger rabbit',,'carrot city')

The default for int/float fields is 0. Since I reuse the code of the
referring page I don't like to have all fields assigned 0 at the beginning.

Who can help ???

Thanks ... jr

============================================
PFISTER + PARTNER, SYSTEM - ENGINEERING AG
Juerg Rietmann
Grundstrasse 22a
6343 Rotkreuz
Switzerland

phone: +4141 790 4040
fax: +4141 790 2545
mobile: +4179 211 0315
============================================



Re: no value for numeric filed in SQL statement causes an error

От
Michael Fork
Дата:
You can do it one of two ways, dynamically build your queries and leave
out fields that are blank (they will be set to the default value or, if
none is specified, NULL), i.e.:

INSERT INTO table (name, city) VALUES ('roger rabbit', 'carrot city');

or, assign a default value to the id variable, and update the variable if
the form field is not blank, leaving you with:

INSERT INTO table (name, id, city) VALUES ('roger rabbit', <<Default ID
Variable or Form Value Variable>>, 'carrot city');

You cannot put a column with any of the number types (int4, numeric,
etc.) into the field list and leave it blank, a value *must* be specified.  

Michael Fork - CCNA - MCP - A+
Network Support - Toledo Internet Access - Toledo Ohio

On Wed, 31 Jan 2001 juerg.rietmann@pup.ch wrote:

> Hi there
> 
> I have a table with char and int fields. From my form  I get no values back
> for int fields when they are left blank. This causes the SQL insert to
> fail.
> 
> field     type
> name char
> id   int2
> city char
> 
> insert into table (name,id,city) values ('roger rabbit',,'carrot city')
> 
> The default for int/float fields is 0. Since I reuse the code of the
> referring page I don't like to have all fields assigned 0 at the beginning.
> 
> Who can help ???
> 
> Thanks ... jr
> 
> ============================================
> PFISTER + PARTNER, SYSTEM - ENGINEERING AG
> Juerg Rietmann
> Grundstrasse 22a
> 6343 Rotkreuz
> Switzerland
> 
> phone: +4141 790 4040
> fax: +4141 790 2545
> mobile: +4179 211 0315
> ============================================
> 



RE: no value for numeric filed in SQL statement causes an error

От
Michael Davis
Дата:
Try: 

insert into table (name,id,city) values ('roger rabbit',NULL,'carrot city')


-----Original Message-----
From:    juerg.rietmann@pup.ch [SMTP:juerg.rietmann@pup.ch]
Sent:    Wednesday, January 31, 2001 7:16 AM
To:    pgsql-sql@postgresql.org
Subject:    no value for numeric filed in SQL statement causes an error

Hi there

I have a table with char and int fields. From my form  I get no values back
for int fields when they are left blank. This causes the SQL insert to
fail.

field     type
name char
id   int2
city char

insert into table (name,id,city) values ('roger rabbit',,'carrot city')

The default for int/float fields is 0. Since I reuse the code of the
referring page I don't like to have all fields assigned 0 at the beginning.

Who can help ???

Thanks ... jr

============================================
PFISTER + PARTNER, SYSTEM - ENGINEERING AG
Juerg Rietmann
Grundstrasse 22a
6343 Rotkreuz
Switzerland

phone: +4141 790 4040
fax: +4141 790 2545
mobile: +4179 211 0315
============================================



Re: no value for numeric filed in SQL statement causes an error

От
Ian Harding
Дата:
juerg.rietmann@pup.ch wrote:

> Hi there
>
> I have a table with char and int fields. From my form  I get no values back
> for int fields when they are left blank. This causes the SQL insert to
> fail.
>
> field     type
> name char
> id   int2
> city char
>
> insert into table (name,id,city) values ('roger rabbit',,'carrot city')
>
> The default for int/float fields is 0. Since I reuse the code of the
> referring page I don't like to have all fields assigned 0 at the beginning.
>
> Who can help ???
>
> Thanks ... jr
>
> ============================================
> PFISTER + PARTNER, SYSTEM - ENGINEERING AG
> Juerg Rietmann
> Grundstrasse 22a
> 6343 Rotkreuz
> Switzerland
>
> phone: +4141 790 4040
> fax: +4141 790 2545
> mobile: +4179 211 0315
> ============================================

That is by design, as they say.  You can allow the default to take effect by
changing your field list on the insert to not include id.

insert into table (name,city) values ('roger rabbit','carrot city')

I don't know what your front end is, but you could have it plug a figure into
the offending fields if blank as well.

Ian