Ich bekomme jetzt bei einem SQL Statement immer eine Fehlermeldung:
INSERT INTO gattungen (id_familie,name_gattung,id_bearbeiter) SELECT 94,‘wert gattung’,1
“SQL Error: FEHLER: integer ist außerhalb des gültigen Bereichs”
Leider habe ich jetzt keine Ahnung warum da ein Integer Fehler kommt. 94 sollte ja eigentlich da rein passen, oder?
id_familie (serial) und id_bearbeiter(integer) sind ja Integer. An name_gattung sollte es ja nicht liegen? Bin da jetzt irgendwie überfragt und weiss nicht was ich da übersehe.
Hat hier eventuell jemand eine Idee oder weiss warum dort diese Fehlermeldung kommt?
Danke für die schnelle Antwort.
Das komplette Insert wäre so.
INSERT INTO gattungen (id_familie,name_gattung,id_bearbeiter) SELECT 94,‘wert gattung’,1 WHERE NOT EXISTS (SELECT id_familie,name_gattung FROM gattungen WHERE id_familie=94 and name_gattung=‘wert gattung’)
Ich wollte damit prüfen ob der Wert existiert und nur dann etwas eintragen wenn es ein neuer Wert ist. Ich bekomme aber trotzdem immer die Fehlermeldung, dass integer ausserhalb des Bereichs ist. Auch wenn ich ich nur den ersten Teil des SQL benutze. Ich hab keine Ahnung warum.
Jetzt habe ich gerade den fehler gefunden.
Aus irgendeinem mir unbekannten Grund war die Sequence vom serial auf etwa 30mrd. gesetzt. Das ist dann natürlich ausserhalb des Bereichs. Hab zwar keine Ahnung warum, da eigentlich nur etwa 1500 Werte in der Tabelle drin sind. Aber nachdem ich das zurückgesetzt hab funktioniert es wieder.
Manchmal hilft angestrengtes Starren.