[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Sep 2006
    Beiträge
    11

    Tabelle mit AutoIncrementfeld

    Hallo,

    wir arbeiten oft mit SQL-Tabellen mit AutoIncrementfeld, das i.d.R. um 1 erhöht wird(z.B. lfd. Nummer). Beim Kopieren dieser Tabellen geht der Wert aus diesem Feld verloren. Man muss dann mit dem Befehl 'Alter Table' den neuen Startwert für das AutoIncrementfeld eingeben(bisheriger max-Wert + 1). Gibt es eine Möglichkeit, das der Wert im AutoIncrementfeld nach dem Kopieren erhalten bleibt?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wie der Name schon sagt, es ist ein AutoIncrement !
    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
    Aug 2001
    Beiträge
    2.928
    Hallo,

    was willst Du eigentlich machen?

    Mit CL ein Duplikat der ersten Datei erstellen?
    In diesem Falls solltest Du nicht CPYF (Copy File), sondern CRTDUPOBJ (Create Duplicated Object) verwenden. Beim CRTDUPOBJ muss der Start-Wert für die Identity Column nicht neu gesetzt werden, sondern bleibt erhalten. Auch in der kopierten Datei bleibt der Wert erhalten, nur um die gecachten Werte erhöht. D.h. der letzte Wert war 100 und der Cache in der Identity Column ist 20, wird 121 als nächste laufende Nr. vergeben.

    Beim Erstellen der Datei mit SQL (CREATE TABLE xxx as (Select * from ...) with Data), wird im Duplikat keine Identity Column erzeugt, d.h. diese Information muss nachträglich hinzugefügt werden.

    Willst Du dagegeben nur einen Teil der Sätze in eine andere Datei, die ebenfalls eine Identity Column hat, muss der eindeutige Wert in der anderen Datei neu ermittelt werden und gegebenenfalls auch neu gesetzt werden.

    Birgitta
    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

  4. #4
    Registriert seit
    Sep 2006
    Beiträge
    11
    Hallo,

    die Tabelle soll mit Daten, unter Beibehaltung des Wertes im Incrementfeld kopiert werden. Mit CRTDUPOBJ bleibt der Wert erhalten. Beim Einfügen eines neuen Satzes wurde als neuer Wert im Incrementfeld der bisherige Wert + der im Cache angegebene Wert ermittelt. Das habe ich gewollt. Vielen Dank.

    Norbi

Similar Threads

  1. Antworten: 11
    Letzter Beitrag: 18-07-16, 09:49
  2. Länderspezifischer Zeiensatz in Tabelle
    By peter.kinne in forum NEWSboard Drucker
    Antworten: 23
    Letzter Beitrag: 08-11-06, 08:54
  3. Records innerhalb Tabelle duplizieren
    By mama in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 27-10-06, 08:14
  4. Datensatz von Tabelle A nach Tabelle B
    By Schorsch in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 07-05-04, 11:18
  5. Beschränkung auf Anzahl Felder in Tabelle????
    By KB in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-09-01, 10:56

Berechtigungen

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