Re: Problem while inserting a varchar

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Problem while inserting a varchar
Дата
Msg-id 26959.1203276170@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Problem while inserting a varchar  (Christian Stalp <christian.stalp@gmx.de>)
Ответы Re: Problem while inserting a varchar  (Christian Stalp <christian.stalp@gmx.de>)
Список pgsql-novice
Christian Stalp <christian.stalp@gmx.de> writes:
> CREATE  TABLE RETRY(
>     rid bigserial primary key,
>     source_macaddress varchar (40),
>     destination_macaddress varchar (40),
>     accesspoint integer references ACCESSPOINT(aid),
>     retray_day date,
>     retry_time time
> );

> My insert string looks as follows:  INSERT INTO RETRY VALUES (
> '0:40:f4:d3:0:0','0:40:f4:d3:0:0',1, 2008-02-17,18:42:05 );

> and the postgres-log tells me anything about a invalid input syntax for
> the whole number �0:40:f4:d3:0:0�
> The first value we have is a bigserial. I thought this is integer-number
> which is automatically created by the database?

No, not if you explicitly specify a value for it.  Serial columns just
have a useful default.  If it weren't that way, how could you dump and
reload the table?

You have several options:

1. Explicitly say you want the default for the first column:

INSERT INTO RETRY VALUES ( DEFAULT, '0:40:f4:d3:0:0', ... );

2. Use a column name list, and omit "rid" from it:

INSERT INTO RETRY (source_macaddress, destination_macaddress, ...)
  VALUES ( '0:40:f4:d3:0:0', ... );

3. Put the serial column last, so that you can just omit it without
saying anything.  (This last is not strictly according to the letter of
the SQL spec, I think, but PG allows it and so do some other databases.)

BTW, why don't you use the "macaddr" data type for those MAC address
columns?  Then you'd get some error checking ...

            regards, tom lane

В списке pgsql-novice по дате отправления:

Предыдущее
От: Michael Glaesemann
Дата:
Сообщение: Re: Problem while inserting a varchar
Следующее
От: Christian Stalp
Дата:
Сообщение: Re: Problem while inserting a varchar