Re: COPY INTO and the SERIAL data type

Поиск
Список
Период
Сортировка
От Marc SCHAEFER
Тема Re: COPY INTO and the SERIAL data type
Дата
Msg-id Pine.LNX.3.96.1010510113036.1364B-100000@defian.alphanet.ch
обсуждение исходный текст
Ответ на COPY INTO and the SERIAL data type  (Jonathan Sand <sand@gizmolab.com>)
Список pgsql-general
On Thu, 10 May 2001, Jonathan Sand wrote:

> I want to use the COPY command to read a bunch of data files. These
> files don't contain an id, so I want to use the SERIAL data type to
> auto-number the generated rows. COPY complains.

Destination table:
   CREATE TABLE destination (id SERIAL, truc INT, temps DATE);

Temporary table:
   CREATE TABLE temp1 (truc INT, temps DATE);

Please do:
   COPY temp1 FROM STDIN;
   INSERT INTO destination
      SELECT nextval('destination_id_seq'), *
      FROM temp1;
   DROP TABLE temp1;

with data:

   34   2001-03-05
   52   2001-02-01
   \.

and you will get:

   SELECT * FROM destination;
   id|truc|     temps
   --+----+----------
    1|  34|2001-03-05
    2|  52|2001-02-01
   (2 rows)

NOTE: this doesn't number the data in sequence, but in the order the
SELECT returns them. If you need an absolute order, use the following Perl
script instead:

   my $count = 1;
   while (<>) {
      print $count++, "\t", $_;
   }

and insert directly in the database.


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

Предыдущее
От: Igor
Дата:
Сообщение: Re[2]: Vacuudb problem
Следующее
От: Vince Vielhaber
Дата:
Сообщение: Re: Oracle to Pg tool