Entwickler-Ecke

Alle Sprachen - Alle Plattformen - Was bedeutet Firebird-Prozedur-Fehlermeldung


erfahrener Neuling - Di 31.05.16 10:58
Titel: Was bedeutet Firebird-Prozedur-Fehlermeldung
Hallo,

ich schreibe momentan eine Prozedur für eine Firebird-Datenbank. Dabei hole ich Werte aus 1 Tabelle, schreib einen Teil davon in eine 2. Tabelle und den anderen Teil als Eingangsparameter in eine andere Prozedur. Dabei bekomme ich folgende Fehlermeldung:
Zitat:
attempt to store duplicate value (visible to active transactions) in unique index "MirNichtBekannteVariable"
Problematic key value is ("ArtikelNr" = ...)

Was für eine Art von Problem ist das? Hat ArtikelNr vielleicht das falsche Format? (kenne das von "MirNichtBekannteVariable" nicht)
Wie gehe ich da am besten ran?

Gruß Julian

PS: wenn ihr Quelltext braucht, könnt ihr kriegen!


doublecross - Di 31.05.16 11:12

Es liest sich für mich so, als wolltest du eine "ArtikelNr" doppelt vergeben. Das ist nicht erlaubt, da das Feld dein Schlüssel ist und der muss eindeutig sein.

Sprich dein Query hat eine Artikel Nummer ergeben, die es in Tabelle 2 Schon gibt und du versuchst sie per INSERT erneut hinzuzufügen, in dem Fall muss du aber entweder den Datensatz auslassen, da es ihn schon gibt oder per UPDATE eine Änderung des bereits bestehenden Datensatzes durchführen. Auch ein Löschen des alten Eintrages vor dem INSERT wäre denkbar.


Nersgatt - Di 31.05.16 11:24

Das "MirNichtBekannteVariable" ist der Name des Uniquer-Indexes, der verletzt wird. Ich würde mir diesen Index mal in der Datenbank anschauen.


erfahrener Neuling - Di 31.05.16 11:30

@doublecross
Ich hab deinen Rat mal befolgt, und die betroffenen Felder in Tabelle 2 auf null gesetzt und dann ging es (Ist ja auch logisch, das es nicht mehrere gleiche ArtikelNr geben soll).


doublecross - Di 31.05.16 11:35

Hi,
user profile iconerfahrener Neuling hat folgendes geschrieben Zum zitierten Posting springen:
@doublecross
Ich hab deinen Rat mal befolgt, und die betroffenen Felder in Tabelle 2 auf null gesetzt und dann ging es (Ist ja auch logisch, das es nicht mehrere gleiche ArtikelNr geben soll).

verstehe ich nicht ganz, was hast du auf null gestellt? Oder schreibst du die Artikelnummer nur einfach nicht neu weg? Wie Identifizierst du dann den betroffenen Datansatz?


erfahrener Neuling - Di 31.05.16 12:06

Nein, eigentlich will ich komplett neue Sätze in Tabelle 2 erstellen, hatte aber noch alte Test-Daten mit den Artikelnummern. Und die hab ich gelöscht