Winterkind Geschrieben 23. Oktober 2015 Geschrieben 23. Oktober 2015 Hallo zusammen,ich beschäftige mich gerade mit Datenbanken. Ich habe nun mit den Befehlen "create database datenbankname" und "create table tabellenname" eine Datenbank mit einigen Tabellen angelegt.Danach habe ich nun versucht die Tabellen mit dem Befehl "insert into tabellenname values(...);" einzufügen.Beispiel:1. Ich habe eine Tabelle "Kunden" mit den Attributen "ID", "Name", "Vorname" und "Strasse". ID ist vom Datentyp Integer und die anderen drei Attribiute sind vom Datentyp Varchar.Befehl zum Einfügen von Daten:INSERT INTO KundenVALUES(01, 'Mustermann', 'Max', 'Musterstrasse 1');2. Ich habe eine Tabelle "Auto" mit den Attributen "ID", "Kunde", "Name", "Kennzeichen". ID ist wieder vom Typ Integer, Kunde ebenso (referenziert auf die ID in der Kundentabelle als Fremdschlüssel) und Name sowie Kennzeichen sind wieder vom Typ Varchar.Befehl zum Einfügen von Daten:INSERT INTO AutoVALUES(01, 01, 'VW Golf', 'XY Z 99');Beide Tabellen befinden sich logischerweise in derselben Datenbank.Nun tritt folgendes Problem auf:Ich führe die Abfrage zum Einfügen der Daten in die Tabellen ein (mit mehreren Datensätzen, nicht nur einem). Die Tabelle Kunden wird wie angegeben gefüllt und ich kann sie mir danach problem anschauen und weitere Abfragen auf ihr ausführen.Bei der Tabelle Auto bekomme ich jedoch folgende Fehlermeldung und sie wird nicht gefüllt:"Conversion failed when converting the varchar value 'XY-Z99' to data type int."Wieso wird hier nun versucht varchar in int umzuwandeln? Ich gebe nichts dergleichen an? Ich dachte erst, es liegt vielleicht daran, dass Buchstaben und Zahlen gemixt sind, aber das ist ja bei dem Attribut "Strasse" in der Tabelle "Kunden" ebenfalls der Fall und da gibt es keine Probleme.Muss ich für solche Fälle vielleicht einen anderen Datentyp wählen oder irgendwas zusätzlich konvertieren?Das Attribut kommt nur in dieser Tabelle vor und wird sonst nirgendwo referenziert oder sonstiges.Ich hoffe, jemand kann mir weiterhelfen...:)Danke im Voraus! Zitieren
sas86ks Geschrieben 23. Oktober 2015 Geschrieben 23. Oktober 2015 Doofe Frage, aber ganz sicher, dass Kennzeichen als VARCHAR definiert wurde? Bei so einem Fehler würde ich mir nochmal die Definition der Tabelle ausgeben lassen nur um sicher zu gehen. Eine andere Erklärung habe ich momentan nicht. Zitieren
Winterkind Geschrieben 23. Oktober 2015 Autor Geschrieben 23. Oktober 2015 Danke für die schnelle Antwort!Ja, Kennzeichen wurde als varchar definiert. Das habe ich als erstes nachgeschaut, aber ich kann mal keinen Fehler oder ein fehlendes Komma oder sonst was erkennen..Hier ist meine Definition der Tabelle:create table Auto(ID INTEGER NOT NULL,Kunde INTEGER,Name VARCHAR(50),Kennzeichen VARCHAR(50),PRIMARY KEY(ID),FOREIGN KEY(Kunde) REFERENCES Kunde(ID)); Habe auch die Datenbank nochmal ganz neu erstellt und nur die Tabelle Auto eingefügt ohne Fremdschlüssel, weil ich dachte, ich habe vielleicht vorher einen Fehler gemacht, aber dann passiert es auch.. Zitieren
Winterkind Geschrieben 23. Oktober 2015 Autor Geschrieben 23. Oktober 2015 Okay, ich habe jetzt alles noch einmal nach und nach per Hand abgetippt und jetzt funktioniert es.Ich habe keine Ahnung, wo der Fehler lag, denn wenn ich ein Diff von beiden Versionen mache, ist es genau derselbe Text. Vielleicht ist bei dem ganzen Copy&Paste irgendwann etwas reingerutscht, dass da nichts zu suchen hatte.Dennoch vielen Dank für die Hilfe! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.