Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Import oder Anfüge-Abfrage erzeugt Fehler - key violations

Begonnen von nimora, März 22, 2018, 12:26:04

⏪ vorheriges - nächstes ⏩

nimora

guten tag,

ich möchte eine vorhanden Excel-Tabelle mit text, datum und zahlen in ene vorhandene leere tabelle importieren. Dabei erhalte ich immer wieder die Fehlermeldung, dass 0 Felder importiert und key violations.

wenn ich nach deisem stichwort im forum suche, komme ich nur auf einen fehler, dass sich leere zellen im datensatz befinden.

nun, das lässt sich bei der quelle aber nicht vermeiden und ich würde es auch für absurd halten, wenn man keine tabellen importieren könnte, die leere zellen enthält.

Ich kann den import in eine neue tabelle durchführen. um dann aber die daten in die richtige Tabelle zu bekommen, dachte ich, nutze ich eine einfüge-abfrage. hier erhalte ich leider denselben fehler.

Hier mal die Abfrage:

INSERT INTO tblSicknessLateness ( InfoDate, sickEmployeeNum, Reason, furtherInfo, Delay, absenceFrom, absenceTo )
SELECT Absence.InfoDate, Absence.sickEmployeeNum, Absence.Reason, Absence.furtherInfo, Absence.Delay, Absence.absenceFrom, Absence.absenceTo
FROM Absence;


Was könnte dort das Problem sein? Die Feldtypen sind den inhalten angepasst. gibt es ggf. noch eine andere möglichkeit?

Danke

Lachtaube

Key Violation = Verletzungen einer Schlüsseleinschränkung. D. h., Primärschlüssel müssen einmalig sein, Fremdschlüssel dürfen nicht isoliert vorliegen.

PS: statt eines direkten Imports ist es oft lohnenswert, die Daten des Excel-Blatts nur zu verknüpfen und darüber eine Anfügeabfrage laufen zu lassem, in der man ggf. noch einiges gerade biegen kann. Außerdem lassen sich die Daten sichten.
Grüße von der (⌒▽⌒)

nimora

okay danke, werde es über die verknüpfung versuchen.

in der Abfrage habe ich den primärschlüssel der quelltabelle aber gar nicht mit angegeben. Warum gibt es da dennoch einen konflikt? es soll ja eigentlich in der leeren ziel-tabelle ein jeweils neuer datensatz mit natürlich einem neuen pkey angelegt werden.

Wo liegt mein logik-fehler?

ebs17

Auf einem der Felder dürfte ein eindeutiger Index liegen, damit wird dann ein Einfügen eines Duplikats unterbunden.
Siehe bzgl. besseres Abfragedesign auch Grundlagen - SQL ist leicht (4) - Aktualisierung einer Tabelle
Mit freundlichem Glück Auf!

Eberhard