Announcement

Collapse
No announcement yet.

Insert into

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Insert into

    Ich hoffe ich bin hier richtig, denn ich bin etwas verzweifelt.

    Ich möchte gerne mit INSERT INTO 300 Datensätze (keine bestimmten) von der einen Tabelle in die andere kopieren.

    Aktuell sieht mein Text so aus:
    INSERT INTO locations (location_id, street_address, postal_code, city)
    SELECT ???, adr_strasse, adr_plz, adr_ort
    FROM stammdaten.filiale_select;

    wie schon vermuten lässt, bei den Fragezeichen weiß ich nicht weiter. Lass ich im insert to location_id weg, meckert er rum weils n primary key ist.

    ich habe allerdings nichts was ich dazu rein schreiben könnte was passen würde, und was auch ein VARCHAR ist.

    vielleicht denke ich zu kompliziert, wie gesagt ich bin ein totaler anfänger, habe mich das erste mal vor einer woche mit dem Thema auseinander gesetzt und hoffe ihr könnt mir helfen. Hänge jetzt schon mehrere Stunden an dem Problem und weiß langsam keinen Rat mehr..

  • #2
    Kommt drauf an was du reinschreiben möchtest. sys_guid() würde dir eine 32-stellige, eindeutige ID erzeugen, über eine Sequenze kannst Du fortlaufende Nummern generieren und natürlich kannst Du auch die PK Spalte aus filiale_select benutzen.
    Das ist für uns nicht ganz einfach dir vorzugeben, was Du gerne als PK haben möchtest.
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Habe mir auch überlegt, da location_id ein NUMBER(4) und ide_id (das wäre der primärschlüssen aus der anderen tabelle) ein INTEGER ist, ob man den Datentyp hier nicht verändern kann, so dass er für beide gleich ist?
      Oder würde das hier nichts bringen?

      Comment


      • #4
        Es würde dazu führen, dass das Insert Statement funktioniert, wenn Du für den PK der Zieltabelle das PK Feld der Quelltabelle einsetzt.
        Die Frage wäre, ob es in Deinem Sinne ist bzw. der Aufgabenstellung entspricht.

        Dimitri hat schon eine Alternative genannt. Eine andere Alternative wären Sequenzen, die man in Oracle zur Erzeugung eines Primärschlüssels einsetzt. Sequenzen kann man so anlegen, dass sie vom Wertebereich her das liefern, was Du mit der Dimensionierung der PK Spalte vorgegeben hast: number(4).

        http://psoug.org/reference/sequences.html
        Gruß, defo

        Comment

        Working...
        X