x

Frage zur Postgresql-Syntax


  1. Frage zur Postgresql-Syntax · Lübeck (Gast) · 02.08.2013 04:56 · [flux]

    HI !

    ich wollte Daten einer Tabelle zuweisen und habe folgenden Ausdruck:

    UPDATE␣nodes␣SET␣dogbags='yes'␣WHERE␣tags@>'vending=excrement_bags';
    

    bekomme aber die Meldung:

    FEHLER: Syntax error near 'e' at position 8
    LINE 1: UPDATE nodes SET dogbags='yes' WHERE tags@>'vending=excremen...
    ^

                      • Fehler **********

    FEHLER: Syntax error near 'e' at position 8
    SQL Status:XX000
    Zeichen:44

    Kann mir einer sagen was da falsch ist ? dogbags als Tabelle gibt es !

    Gruß Jan :-)


    • Re: Frage zur Postgresql-Syntax · viw (Gast) · 02.08.2013 05:56 · [flux]

      Schaue mal in der Definition um welchen Typ es sich bei dem Feld handelt. Die Fehlermeldung deutet darauf hin das yes kein zu lässiger Wert ist. vielleicht ist es true false oder 0 1 oder yes no ohne Anführungszeichen


    • Re: Frage zur Postgresql-Syntax · Lübeck (Gast) · 02.08.2013 06:20 · [flux]

      Hi !

      guter Hinweis - hatte Text genommen! da das YES steht doch in Hochkomma !

      Gruß Jan :-)


    • Re: Frage zur Postgresql-Syntax · maxbe (Gast) · 02.08.2013 07:23 · [flux]

      Bei Deiner Art, Code als Zitat wiederzugeben landet der Fehlermeldungs-Pfeil auf meinem Monitor irgendwo bei dogbags='yes'. In echt dürfte er deutlich weiter hinten stehen...
      Probierst doch mal mit tags@>'vending=>excrement_bags'.

      osm=>␣select␣tags␣from␣osm_point␣where␣tags@>'vending=excrement_bags'␣limit␣5;
      FEHLER:␣␣Syntax␣error␣near␣'e'␣at␣position␣8
      LINE␣1:␣select␣tags␣from␣osm_point␣where␣tags@>'vending=excrement_ba...
      ^
      osm=>␣select␣tags␣from␣osm_point␣where␣tags@>'vending=>excrement_bags'␣limit␣5;
      tags
      ------------------------------------------------------------------------------------------------------------
      "ref"=>"W6",␣"amenity"=>"vending_machine",␣"vending"=>"excrement_bags",␣"operator"=>"Stadt␣Augsburg␣-␣AWS"
      "amenity"=>"vending_machine",␣"vending"=>"excrement_bags",␣"payment:none"=>"yes"
      "amenity"=>"vending_machine",␣"vending"=>"excrement_bags",␣"payment:none"=>"yes"
      "waste"=>"excrements",␣"amenity"=>"vending_machine",␣"vending"=>"excrement_bags"
      "vending"=>"excrement_bags"
      (5␣rows)
      

      Grüße, Max


    • Re: Frage zur Postgresql-Syntax · Lübeck (Gast) · 02.08.2013 08:08 · [flux]

      hi !

      ok - werde mal nächste mal darauf achten.

      Habe das im Zug gerade auch nochmal ausprobiert und mit

      UPDATE␣nodes␣SET␣dogbags='yes'␣WHERE␣tags@>␣'vending=>excrement_bags';
      

      hat es funktioniert.

      Hatte mal nach tags und update und postgresql über das smartphone versucht einen Hinweis zu bekommen.

      Danke für Deine Hilfe.

      Habe dann noch eine Frage die ich mir noch nicht ganz zusammenreimen kann.

      Wie kann ich den Ausdruck umbauen damit der neuen Spalte X der Wert eines bestimmten Schlüssels zuweisen kann?

      Gruß Jan :-)


    • Re: Frage zur Postgresql-Syntax · maxbe (Gast) · 02.08.2013 08:26 · [flux]

      Lübeck wrote:

      Wie kann ich den Ausdruck umbauen damit der neuen Spalte X der Wert eines bestimmten Schlüssels zuweisen kann?

      update␣tabelle␣set␣X=tags->'X'␣where␣tags?'X';
      

    • Re: Frage zur Postgresql-Syntax · wambacher (Gast) · 02.08.2013 09:21 · [flux]

      Lübeck wrote:

      Wie kann ich den Ausdruck umbauen damit der neuen Spalte X der Wert eines bestimmten Schlüssels zuweisen kann?

      update␣tabelle␣set␣X=tags->'X'␣where␣tags?'X';
      

      Warum? neue Spalte erstellen weil dir hstore Probleme macht? Dann kannst du gleich zu osm2pgsql wechseln.

      Das mal lesen, obwohl ich nicht begeistert bin: http://www.postgresql.org/docs/9.1/static/hstore.html

      Gruss
      walter