Still the problem with the autoincrement field

Started by Marc Eggenbergerover 27 years ago4 messagesgeneral
Jump to latest

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
=====================================

#2Kevin Heflin
kheflin@shreve.net
In reply to: Marc Eggenberger (#1)
Re: [GENERAL] Still the problem with the autoincrement field

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
--------------------------------------------------------------------

#3Herouth Maoz
herouth@oumail.openu.ac.il
In reply to: Marc Eggenberger (#1)
Re: [GENERAL] Still the problem with the autoincrement field

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

#4Greg Youngblood
YoungblG@houstoncellular.com
In reply to: Herouth Maoz (#3)
RE: [GENERAL] Still the problem with the autoincrement field

Try:
insert into
offene_stellen (bezeichnung,arbeitsort,berater,gefordert,geboten)
values
('Maurer', 'Buchs', 'Rheinhalter Claudio', 'flexibilitaet', 'gutes Team');

Gregory S. Youngblood
ext 2164
�
�

-----Original Message-----
From: Marc Eggenberger [mailto:me@ieo.ch]
Sent: Tuesday, October 06, 1998 4:30 AM
To: pgsql-general@postgreSQL.org
Subject: [GENERAL] Still the problem with the autoincrement field

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
=====================================