Announcement

Collapse
No announcement yet.

Inserts in gefüllte Tabelle, Primärschlüsselfeld per Sequenz

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

  • Inserts in gefüllte Tabelle, Primärschlüsselfeld per Sequenz

    Ich möchte per sql-script eine Tabelle auffüllen.

    create SEQUENCE QHS_ID;
    insert into QHERST (QHS_ID, QHS_NAME)
    select QHS_ID.NEXTVAL, HERSTELLER
    from hydrant."TR HyHersteller" where hydrant."TR HyHersteller".HERSTELLER is not null;
    drop SEQUENCE QHS_ID;

    ORA-00001: Verstoß gegen Eindeutigkeit, Regel (FL.SYS_C0017665)

    Was mache ich falsch?
    Wenn die Tabelle leer ist bzw. nur den Nullsatz enthält, funktioniert das script.

    Frank

  • #2
    Du erstellst in deinem Skript eine Sequence, die gibt einen Wert aus (NEXTVAL) damit füllst Du eine Spalte und löscht die Sequence wieder.
    Da es eine Standardsequence ist fängt diese warwcheinlich mit 1 an zu zählen. Nachdem Du sie gedropt und neuerstellt hast fängt diese wieder an mit 1 zu zählen. Das Feld welches Du füllst ist warscheinlich UNIQUE deklariert. Änderungsvorschlag, bau Dir die Sequence und lass fülle die Tabelle mit deinen Daten und lass die Sequence dann in Ruhe (nicht droppen). Dann zählt sie das nächste mal weiter und fängt nicht wieder von vorn an.

    Grus

    Comment


    • #3
      Es ist zwar schon eine Weile her, aber ich hab's erfolgreich ausprobiert.

      Besten Dank!

      Fran

      Comment

      Working...
      X