Re: Column does not exist when trying to insert data.

From: Adrian Klaver <aklaver(at)comcast(dot)net>
To: pgsql-general(at)postgresql(dot)org
Cc: "Parthan SR" <python(dot)technofreak(at)gmail(dot)com>
Subject: Re: Column does not exist when trying to insert data.
Date: 2007-03-16 13:33:39
Message-ID: 200703160633.39249.aklaver@comcast.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thursday 15 March 2007 9:52 pm, Parthan SR wrote:
> Hello,
>
> My table 'orderitems' looks like this
>
> create table orderitem (
> id serial not null primary key,
> item integer not null,
> quantity numeric(6,2) not null,
> unit varchar(10),
> conference integer not null,
> seller integer not null,
> incharge integer not null,
> orderdate date not null,
> duedate date not null,
> returnedas varchar,
> );
>
> I get all the values from a form, validate them and try to insert into
> my postgres database table.
> The integers in the above table are foreign key refernces (which I
> have done using constraints).
> The fields 'unit' and 'returnedas' are optional. I use python-psycopg
> to handle the DB part.
>
> When I execute the following statement..
>
> "INSERT INTO orderitem
> (item,quantity,unit,conference,seller,incharge,orderdate,duedate,returnedas
>) VALUES (%d,%f,%s,%d,%d,%d,%s,%s,%s)" %
> (params['item'],params['quantity'],params['unit'],
> params['conference'],params['seller'],params['incharge'],params['orderdate'
>],params['duedate'],params['returnedas'])
To make it make work here I had to use pyformat formatting. To illustrate-
VALUES(%(item)s,%(quantity)s,%(unit)s,%(conference)s,%(seller)s,%(incharge)s,
%(orderdate)s,%(duedate)s,% (returnedas)),
{'item':params['item'],'quantity':params['quantity'],'unit':params['unit'],'conference':
['conference'],'seller':params['seller'],'incharge':params['incharge'],
'orderdate':params[orderdate'],'duedate':params['duedate'],'returnedas':params['returnedas']}

> params['conference'],params['seller'],params['incharge'],params['orderdate'
>],params['duedate'],params['returnedas']
>
> I get the following error in the browser, whent he fields for unit and
> returnedas are left blank and hence becomes None.
> I also tried to have some string value such as 'nos' and 'not reqd' for
> 'unit' and 'requiredas' but still it get a similar error
> saying column 'nos' does not exist.
>
> *ProgrammingError*: ERROR: column "none" does not exist INSERT INTO
> orderitem
> (item,quantity,unit,conference,seller,incharge,orderdate,duedate,returnedas
>) VALUES (6,10.000000,None,39,1,1,2007-3-16,20-03-2007,None)
> args = ('ERROR: column "none" does not exist\n\nINSERT INT...,
> 10.000000,None,39,1,1,2007-3-16,20-03-2007,None)',)
>
> Where am I getting wrong ?
This is probably a psycopg issue. If the solution I suggested above does not
work you may want to take up the problem on the psycopg list.

--
Adrian Klaver
aklaver(at)comcast(dot)net

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Joshua D. Drake 2007-03-16 13:36:42 Re: pg_dumpall and version confusion
Previous Message Christopher Browne 2007-03-16 13:29:01 Re: Lifecycle of PostgreSQL releases