ORACLE INSERT UNIQUE Fehler

mafin

Mitglied
Hallo,

ich habe folgenden String:

Code:
INSERT INTO Benutzer
		(SELECT Benutzer_temp.BenutzerID, Benutzer_temp.Benutzer
		FROM Benutzer_temp
		WHERE (Benutzer_temp.BenutzerID)
		NOT IN
		(SELECT Benutzer.BenutzerID
		FROM Benutzer))
Daraufhin folgt eine Fehlermeldung:

Code:
ORA-00001 Unique Constraint

In der Tabelle Benutzer_temp sind einige Daten doppelt vorhanden.
Ich will nun alle Daten, die es nicht in Benutzer aber in Benutzer_temp gibt in Benutzer schreiben lassen.
Natürlich ist in Benutzer das Feld BenutzerID unique gesetzt und soll auch so bleiben.
In MySQL habe ich einfach zwischen INSERT und INTO ein IGNORE gesetzt und somit hat er die Fehlermeldung ignoriert - doppelte Daten in Benutzer habe ich dennoch nicht erhalten. Aber leider geht das in Oracle nicht. Wie kann cih mir helfen?
 
Hi.

Kann es sein, dass du auch auf der Benutzer Spalte eine Unique Beschränkung gesetzt hast?

\edit: Da waren die Finger schneller als meine Augen. Du hast ja bereits doppelte Einträge in der temp. Tabelle drin. Verwende doch einfach eine group by Klausel.

Gruß
 
Du bekommst eine Primärschlüsselverletztung
weil entweder du einen Wert in ein Feld eintragen möchtest welches automatisch belegt wird

oder
weil du doppelte Werte einfügen willst


Also überprüfe mal deine Quelldaten und deine Zieltabelle auf diese Möglichkeiten

Grüsse bb
 
Du bekommst eine Primärschlüsselverletztung
weil entweder du einen Wert in ein Feld eintragen möchtest welches automatisch belegt wird

oder
weil du doppelte Werte einfügen willst


Also überprüfe mal deine Quelldaten und deine Zieltabelle auf diese Möglichkeiten

Grüsse bb

Genau, das ist mir klar!
Ich dachte nur, dass ich diese Werte damit auschließen kann wenn ich ihm sage, dass er nur Werte selektieren soll die nicht in der Tabelle Benutzer stehen. Das geht soweit auch wie in der Tabelle Benutzer_temp nicht doppelte Werte vorhanden sind.

Die Group By Funktion funktioniert nur solange, wie BenutzerID und Benutzer identisch sind. Leider ist das aus irgendeinem Grund im System nicht immer der Fall, so dass einige BenutzerID als Benutzer null vorweisen.
 
Zurück