Thread
-
Still the problem with the autoincrement field
Marc Eggenberger <me@ieo.ch> — 1998-10-06T09:29:39Z
Hi there. As two people said I created now a sequence .... I have the following now: Database = jobforum +------------------+----------------------------------+----------+ | Owner | Relation | Type | +------------------+----------------------------------+----------+ | postgres | offene_stellen | table | | postgres | seq | sequence | +------------------+----------------------------------+----------+ Table = offene_stellen +----------------------------------+----------------------------------+-------+ | Field | Type | Length| +----------------------------------+----------------------------------+-------+ | id | int4 default nextval ( 'seq' ) | 4 | | bezeichnung | char() | 100 | | arbeitsort | char() | 100 | | berater | char() | 100 | | gefordert | char() | 1000 | | geboten | char() | 1000 | +----------------------------------+----------------------------------+-------+ Table = seq +----------------------------------+----------------------------------+-------+ | Field | Type | Length| +----------------------------------+----------------------------------+-------+ | sequence_name | name | 32 | | last_value | int4 | 4 | | increment_by | int4 | 4 | | max_value | int4 | 4 | | min_value | int4 | 4 | | cache_value | int4 | 4 | | is_cycled | char | 1 | | is_called | char | 1 | +----------------------------------+----------------------------------+-------+ and when I want to add some data .. how to do this? when I do the following: insert into offene_stellen values ('', 'Maurer', 'Buchs', 'Rheinhalter Claudio', 'flexibilitaet', 'gutes Team'); the id field is always 0, and when I do a: insert into offene_stellen values ('Maurer', 'Buchs', 'Rheinhalter Claudio', 'flexibilitaet', 'gutes Team'); I get a: ERROR: pg_atoi: error in "Maurer": can't parse "Maurer" How do I add data, so that the id field is autoincremented? -- mit freundlichen Gruessen ===================================== Eggenberger Marc me@ieo.ch Leimbachstr. 56 Tel 01/4802800 8041 Zuerich Fax 01/4802801 ===================================== -
Re: [GENERAL] Still the problem with the autoincrement field
Kevin Heflin <kheflin@shreve.net> — 1998-10-06T09:57:01Z
On Tue, 6 Oct 1998, Marc Eggenberger wrote: > > and when I want to add some data .. how to do this? > when I do the following: > > insert into offene_stellen values ('', 'Maurer', 'Buchs', 'Rheinhalter Claudio', 'flexibilitaet', 'gutes Team'); > > the id field is always 0, and when I do a: > > insert into offene_stellen values ('Maurer', 'Buchs', 'Rheinhalter Claudio', 'flexibilitaet', 'gutes Team'); Not exactly sure what the problem is here.. but you should not have to call on the increment sequence at all durring the insert.. it's automatic Maybe it's because you are not specifying which fields to insert into like so: insert into table_name (field1, field2, field3, field4) values ('data1', 'data2', 'data3', 'data4'); Kevin -------------------------------------------------------------------- Kevin Heflin | ShreveNet, Inc. | Ph:318.222.2638 x103 VP/Mac Tech | 333 Texas St #619 | FAX:318.221.6612 kheflin@shreve.net | Shreveport, LA 71101 | http://www.shreve.net -------------------------------------------------------------------- -
Re: [GENERAL] Still the problem with the autoincrement field
Herouth Maoz <herouth@oumail.openu.ac.il> — 1998-10-06T10:08:23Z
At 11:29 +0200 on 6/10/98, Marc Eggenberger wrote: > when I do the following: > > insert into offene_stellen values ('', 'Maurer', 'Buchs', 'Rheinhalter >Claudio', 'flexibilitaet', 'gutes Team'); > > the id field is always 0, and when I do a: > > insert into offene_stellen values ('Maurer', 'Buchs', 'Rheinhalter >Claudio', 'flexibilitaet', 'gutes Team'); > > I get a: > ERROR: pg_atoi: error in "Maurer": can't parse "Maurer" > > > How do I add data, so that the id field is autoincremented? Simple. NEVER do an insert without mentioning the field names. It is never advisable to rely on the order of the fields in the database, in any case. In this case, you simply must not enter a value to the field, so that in knows that it should insert the default value. So, what you should do is: INSERT INTO offene_stellen ( bezeichnung, arbeitsort, berater gefordert geboten ) VALUES ( 'Maurer', 'Buchs', 'Rheinhalter Claudio', 'flexibilitaet', 'gutes Team' ); This works, and it also makes sure that if you change the schema such that the order of the fields is different or there are new fields between the existing fields, the query won't break. But if you insist on not mentioning field names, I think inserting a NULL rather than a value in the id field should work. I won't swear on it, but I think you should make that field NOT NULL in the table definition. Remember that '' (The empty string) is NOT THE SAME THING as a NULL. The empty string is just a string with length 0. NULL is "There is nothing here". Herouth -- Herouth Maoz, Internet developer. Open University of Israel - Telem project http://telem.openu.ac.il/~herutma