1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

INSERT – INTO – SELECT – Statement

Dieses Thema im Forum "Andere Datenbankserver" wurde erstellt von nordlender, 17 November 2010.

  1. nordlender

    nordlender Benutzer

    Hallo zusammen,

    ich soll eine Tabelle um weitere Sprache erweitern. Es werden erst Mal deutsche Texte übernommen und nur die Sprache - ID geändert. Dazu habe ich einen INSERT – INTO – SELECT – Statement benutz. Bekomme aber eine Fehlermeldung. Kann jemand eventuell sagen, wo der Fehler liegt?

    Original Tabelle :

    Ziel Tabelle:
    SQL - Statement :
    Code:
    insert  into text (DIVISIONID, LANGID ,  PRESENTATIONNAME)
      select DIVISIONID, 2  , PRESENTATIONNAME from  text where LANGID = 1 and DIVISIONID = 1 ;
    
    Danke im Voraus

    Ps. DB – DB2
     
  2. thomas_w

    thomas_w Datenbank-Guru

    AW: INSERT – INTO – SELECT – Statement

    Wie lautet die Fehlermeldung?

    Grüße
    Thomas
     
  3. nordlender

    nordlender Benutzer

    AW: INSERT – INTO – SELECT – Statement

    contains the semantics error: - 2:76 - the table >>TEXT<< modified in an INSERT statement must not be accessed in a subquery
     
  4. thomas_w

    thomas_w Datenbank-Guru

    AW: INSERT – INTO – SELECT – Statement

    Der SQL sieht für mich korrekt aus, kann es hier aber nicht ausprobieren.

    Die Meldung sieht mir abern ich nicht nach der Original DB2 Fehlermeldung aus. Ist TEXT eine Tabelle oder vielleicht eine VIEW ?

    Grüße
    Thomas
     
  5. nordlender

    nordlender Benutzer

    AW: INSERT – INTO – SELECT – Statement

    TEXT – ist eine Tabelle.

    Kann vielleicht daran liegen, dass wir als Oberflächetool, für den zugriff auf DB, ein selbst programmiertes Tool benutzen..
     
  6. thomas_w

    thomas_w Datenbank-Guru

    AW: INSERT – INTO – SELECT – Statement

    Kannst Du mal die komplette Tabellenstruktur von TEXT zeigen?

    Ich vermute, da gibt es eine ID-Spalte (Primary Key) der mit einer SEQUENCE oder einem TRIGGER automatisch gefüllt wird. Manche Trigger erlauben keinen Multi-Row-Insert wie der INSERT - FROM - SELECT einer ist.

    Grüße
    Thomas
     
  7. nordlender

    nordlender Benutzer

    AW: INSERT – INTO – SELECT – Statement

    [​IMG]

    reicht Dir das?
     
  8. thomas_w

    thomas_w Datenbank-Guru

    AW: INSERT – INTO – SELECT – Statement

    Die Tabelle TEXT hat fünf Spalten mit NOT NULL und eine Spalte die NULL sein darf. D.h. beim Einfügen musst Du Werte für diese fünf NOT NULL Spalten liefern.


    PLANTID NOT NULL
    DIVISIONID NOT NULL
    LANGID NOT NULL
    DIMID NOT NULL
    PRESENTATIONNAME NOT NULL
    DEFAULTTEXT NULL

    Eventuell get es so...
    Code:
    insert into  text (PLANTID, DIVISIONID, LANGID , DIMID,  PRESENTATIONNAME)
    select             PLANTID, DIVISIONID, 2      , DIMID,  PRESENTATIONNAME
      from  text where LANGID = 1 and DIVISIONID = 1 ;
    
    PLANTID ist vielleicht eine eindeutige Nr. eventuell brauchst Du hier eine SEQUENCE als Zahlengenerator. Das gleiche gilt eventuell für DIMID. Eine Vermutung eben, dass ist so für mich nicht ersichtlich.

    Grüße
    Thomas
     
  9. nordlender

    nordlender Benutzer

    AW: INSERT – INTO – SELECT – Statement

    ist mir bewusst. Habe auch gemacht. Na ja muss anderen Weg suchen.
    Danke für die Hilfe.
     

Diese Seite empfehlen