Announcement

Collapse
No announcement yet.

Zeilen kopieren und dabei Spalte ändern

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

  • Zeilen kopieren und dabei Spalte ändern

    Hallo Leute!

    Kann ich ein INSERT INTO ... SELECT machen dabei * verwenden und nur für eine Spalte einen anderen Wert vorgeben?

    Ungefähr so:

    [highlight=sql]
    INSERT INTO content_backup (*, section_id)
    SELECT *, 'xxxxx'
    FROM content_backup
    WHERE site_id='OE-MAIN';
    [/highlight]

    Ich möchte also alle Spalten kopieren nur bei meiner section_id eine andere id vorgeben. Wenn ich alle Spaltenamen angebe funktioniert das auch. Das hab ich in einer Testtabelle probiert nur in meiner "echten" Tabelle gibt es sehr viele Spalten und ich will jetzt nicht alle Namen eintippen wenns geht.

    Deshalb die Frage wie kann ich sagen das alle Spalten (=*) kopiert werden sollen wie sie da sind nur section_id soll den wert "xxxxx" bekommen?

    Danke und schönen Abend!
    Marcus
    Zuletzt editiert von marcusx; 24.11.2008, 18:48.

  • #2
    Deshalb die Frage wie kann ich sagen das alle Spalten (=*) kopiert werden sollen wie sie da sind nur section_id soll den wert "xxxxx" bekommen?
    Im SQL Standard ist so etwas nicht vorgesehen, und ich kenne auch keine DB die das kann.
    Dim
    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
      Mmm Schaade, dann muss ich wohl ein Script schreiben und ne temporäre Tabelle oder so verwenden.

      Danke erstmal.
      mx

      Comment


      • #4
        Originally posted by marcusx View Post
        Mmm Schaade, dann muss ich wohl ein Script schreiben und ne temporäre Tabelle oder so verwenden.

        Danke erstmal.
        mx
        - na ja, ich würde trotzdem halt die Spalten jeweils definiernen, auch wenn es viele sind...
        - Du machst es ja nur einmal
        - Dein Code wird robuster dadurch (Select * "kann" oftmals heikel sein)
        - Jedes halbwegs vernünftige Tool kann dir die DESC der Tabelle anzeigen--> Copy & paste

        - Du könntest natürlich einen Insert mit * machen, und anschliessend deinen gewünschten Update, aber dies ist nicht zu empfehlen

        (Frage: Was hättest du den mit der temporären Tabelle vorgehabt ???)

        Gruss

        Comment

        Working...
        X