Ergebnis 1 bis 3 von 3

Thema: tabelle mit inhalt einer anderen tabelle füllen

  1. #1
    juergen65 ist offline Neuer Benutzer
    Registriert seit
    19.09.2007
    Beiträge
    14

    Standard tabelle mit inhalt einer anderen tabelle füllen

    Hallo,

    ich besitze eine tabelle mit linieninformationen (test), die geometrien dazu sind in der geometry spalte abgelegt.
    Nun lege ich eine neue punkttabelle an:

    CREATE TABLE "abc" (gid serial PRIMARY KEY);
    SELECT AddGeometryColumn('','abc','the_geom','-1','POINT',2);

    das klappt ohne probleme


    in eine weitere tabelle selektiere ich nun die endpunkte:

    CREATE TABLE xyz(the_geom) as
    Select EndPoint (the_geom) from test;

    auch das funktioniert.

    nun will ich diese zeilen in die tabelle abc übertragen, wozu ich folgende zeile verwende:

    INSERT INTO abc ( the_geom ) VALUES ((SELECT the_geom FROM xyz ));

    wobei folgende Fehlermeldung erscheint:

    ERROR: more than one row returned by a subquery used as an expression

    warum kann man nicht mehrere zeilen kopieren? laut sql doku sollte das möglich sein.

    danke schon mal für eventuelle tipps.
    juergen

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von juergen65 Beitrag anzeigen
    nun will ich diese zeilen in die tabelle abc übertragen, wozu ich folgende zeile verwende:

    INSERT INTO abc ( the_geom ) VALUES ((SELECT the_geom FROM xyz ));

    wobei folgende Fehlermeldung erscheint:

    ERROR: more than one row returned by a subquery used as an expression

    warum kann man nicht mehrere zeilen kopieren? laut sql doku sollte das möglich sein.

    danke schon mal für eventuelle tipps.
    juergen
    Das geht schon, der Trick ist, man muß es nur richtig machen.

    Code:
    test=*# select * from person;
     id | vorname | nachname
    ----+---------+----------
      1 |         | eins
      2 | zwei    |
      3 | drei    | drei
    (3 rows)
    
    test=*# create table person1 (id1 int, vn text, nn text);
    CREATE TABLE
    test=*# insert into person1 select * from person;
    INSERT 0 3
    test=*# select * from person1;
     id1 |  vn  |  nn
    -----+------+------
       1 |      | eins
       2 | zwei |
       3 | drei | drei
    (3 rows)

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    juergen65 ist offline Neuer Benutzer
    Registriert seit
    19.09.2007
    Beiträge
    14

    Standard

    wo du recht hast hast du recht,

    danke

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 01.03.2011, 12:05
  2. tabelle mit datum füllen
    Von minor_73 im Forum SQL
    Antworten: 8
    Letzter Beitrag: 10.06.2010, 13:50
  3. Antworten: 4
    Letzter Beitrag: 03.05.2010, 14:10
  4. Antworten: 1
    Letzter Beitrag: 19.06.2009, 07:06
  5. Antworten: 4
    Letzter Beitrag: 21.11.2007, 19:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum