[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    853

    SQl Insert mit allen Feldern

    Hi zusammen,

    ich möchte mit folgendem SQL Daten duplizieren

    insert into tabelleA
    select * from TabelleA where Key = 'Anton'

    Wobei der Key mit Berta eingefügt werden soll.
    (Also das klassiche kopieren auf eine neue Auftragsnummer )

    Kann man das ohne die Spaltenliste realisieren ?
    Gruß
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Definitiv leider nein.

    Du benötigst da ein wenig mehr mit einer global temporary table:

    Declare global temporary ....
    Insert into myglobal select * from mytable where ...
    update myglobal set name = 'new';
    insert into mytable select * from myglobal;
    delete from myglobal; -- aufräumen fürs nächste Mal.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    853
    Hi,

    schade, hatte gehofft das es mittlerweile etwas schöneres gibt :-)

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.943
    Ansonsten gibt es nur:
    Spalten auflisten und den Wert in der gewünschten Spalte überschreiben.
    Wenn Du das mit ACS machst (und beim Prompt alle Spalten auswählst), sollte das kein Problem sein.

    ... oder 3-Zeiler in RPG: Datensatz in (externe) Datenstruktur einlesen (SELECT ... INTO), Wert(e) ändern und dann Datenstruktur beim Insert angeben (INSERT ... VALUES(:ExtDS)).
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Das ist ja bekannt.
    Allerdings, wenn man ab und an mal Tabellen erweitert, möchte man schon irgendwelche Automatismen wie mit native File-IO.
    Da gibts dann Abhängigkeits-Compiler, die bei Änderung einer Tabelle alle betroffenen Componenten mit umwandeln. Führe ich die Spalten einzeln auf, muss ich neue Spalten wieder mit einfügen.
    Bei größeren Teams weiß man allerdings nie, ob jemand mit "*" oder mit Feldliste gearbeitet hat.
    Und wenn dann wie bei obigen Fällen eine Spalte fehlt, weil das so niemand auf dem Schirm hatte, ist später der Teufel los.

    Da Speicher und die Anzahl Spalten heute kaum noch einen Unterschied in der Performance machen, arbeitet man gerne mit "Select * into : MyDs" oder "Update mytable set row = : MyDs".

    Nur bei speziellen Views, die ganz bestimmte Aufgaben haben, arbeite ich dann mit Namenslisten.

    Natürlich ist es einfacher, den Select per Into in eine DS und per Update mit DS durchzuführen um dem Problem aus dem Weg zu gehen. Aber mit pur SQL gehts so halt auch;-).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Jan 2008
    Beiträge
    160
    Zitat Zitat von mk Beitrag anzeigen
    Hi zusammen,

    ich möchte mit folgendem SQL Daten duplizieren

    insert into tabelleA
    select * from TabelleA where Key = 'Anton'

    Wobei der Key mit Berta eingefügt werden soll.
    (Also das klassiche kopieren auf eine neue Auftragsnummer )

    Kann man das ohne die Spaltenliste realisieren ?
    Gruß
    Michael
    warum willst du das unbedingt mit sql tun ????
    CPYF könnte da die lösung sein

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Wenn du noch verraten möchtest, wie du gleichzeitig eine Spalte ändern willst?
    Ich kenne nur die Möglichkeit per z.B. *UPDADD und einem Schlüssel Zeilen aus einer anderen/derselben Datei per Update oder Add zu kopieren.

    Ggf. kann noch ein:

    update myfile
    set field = 'HUGO'
    where key = (
    select key from final table
    (insert into myfile select * from myfile where ....)
    )

    wenn man eine unique Identity hat. Da ist dann noch ein override user values erforderlich.

    Ob allerdings der "select x from final table" innerhalb eines derived tables stehen kann, habe ich noch nicht auspropiert. Ich glaube aber, dass das nicht geht.

    Ein weiteres Manko: Der Insert darf keinen anderen Unique-Key verletzen, was außer mit Identities eher selten vorkommt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.390
    ... eine ordentliche QS übersteht das alles nicht! Einem bestehenden oder entstehendem Auftrag einfach was dranzuhäkeln... Und sage keiner, dass das nicht passiert...

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Was ist denn schon eine ordentliche QS.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.716
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Was ist denn schon eine ordentliche QS.
    das, womit man als Berater Geld verdienen kann, was den Dokumentationsaufwand in ungeahnte Höhen treiben kann, und (evtl) auch das Produkt verbessern kann.

    Auf jeden Fall ist ein bissl QS schon ganz toll. So kann man Stolperfallen vermeiden, in die man sonst selbst rein fällt.
    IBM Champion 2022, 2023, 2024, 2025
    Common Europe Advisory Council / Hall of Fame
    http://pub400.com
    visit www.POWERbunker.com for bespoke IBM i hosting

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Ich habe ja nicht nach QS sondern nach ordentlicher QS gefragt.
    Die sollte man bei der Erziehung durch Eltern ggf. auch mal einführen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Datenstruktur mit allen Feldern eines Satzformates füllen (LIKEREC)
    By Klaus Meyer in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 24-06-25, 13:14
  2. QCLSRC in allen Bibliotheken gelöscht !!!
    By brittner in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 20-02-15, 10:48
  3. sql select mit zusätzl. Feldern
    By rr2001 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-07-06, 10:56
  4. SQL UDF Prob mit leeren Feldern
    By HACHIMAN in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 22-05-06, 10:48
  5. Liste mit allen Features
    By csupp in forum NEWSboard Server & Hardware Markt
    Antworten: 0
    Letzter Beitrag: 25-06-04, 14:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •