[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    1.981

    Doppelter schlüssel, warum?

    moin zusammen

    ein SQL kopiert Daten aus sich selber.
    Unique Key F1 und F2.
    Es gibt keine Sätze mit F2 = 902

    insert into Datei select f1, 902, f3, f4, ...from Datei
    where F2 <> 902 and (f1, 902) not in (select f1, f2 from datei) and
    div. andere Bedingungen ohne F1/f2 bezug

    Kopiervorgang bricht ab wegen doppeltem Schlüssel

    habe mit F2 <> 902 verhindert, das sich 'frisch entstandene Sätze' erneut kopieren
    m.e. unnötig da mit dem "not in" auch noch verhindert wird, das aus

    A 1 --> A 902 und aus
    A 2 --> ebenfalls A 902 wird

    wie kann ich den doppelten Schlüssel effekitv verhindern?

    7.4. so ziemlich alle PTF


    Danke
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.270
    SQL optimiert, so dass die Where-Klausel zuerst geprüft werden und ein Resultset bildet.
    In diesem Resultset sind deine neu eingefügten Sätze natürlich nicht enthalten und werden somit nicht geprüft.
    Wenn die neuen Sätze dann zu einem doppelten Schlüssel führen bekommst du halt den Fehler.

    Ggf. musst du statt "not in" einen "select ... from datei exception join lateral (select ... from datei where ...)" machen.
    Der Lateral kann nicht optimiert werden und grift immer neu auf die Tabelle zu, so dass neu hinzugefügte Zeilen dann berücksichtigt werden.

    "exception join" entspricht einen "not exists" nur als Join-Beziehung statt where.
    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. Doppelter Satzschlüssel
    By harkne in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 03-11-23, 11:45
  2. Erfassen-Maske (speichern Doppelter Satzschlüssel)
    By ZeroQool in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 27-07-07, 09:31
  3. drop procedure bei doppelter Procedure?
    By rebe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 17-05-06, 11:32
  4. doppelter Schlüssel
    By SBaum in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 24-01-03, 11:17

Berechtigungen

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