MySQL Problem

09/26/2012 18:44 GodHacker#1
Hallo,
ich weiß nicht, ob ich hier in der richtigen Sektion bin. Falls nein tut es mir leid.

Ich muss in MySQL ein fertiges Datenbank-Modell als SQL Export zu einer Datenbank machen. Das erstellen hat auch gut geklappt... nur leider muss ich nun jeweils 3 Datensätze einfügen undzwar mit INSERT INTO.
Ich bekomme aber immer den Fehler 1452 und weiß nicht, was ich machen soll.

Hier der SQL Code zum erstellen der Datenbank:

Hier die bisherigen INSERT Befehle:

Falls es jemand hinbekommt, dass die INSERT Befehle laufen, würde ich mich sehr freuen. Ich hoffe, dass sich hier jemand damit auskennt und mir sagen kann, was ich falsch gemacht habe. (Wenn es jemand direkt berichtigen kann währe es genial). :handsdown:

Wichtig ist nur, dass ich nur an den INSERT Befehlen arbeiten darf, da der Teil zum Erstellen der Datenbank von meinem Lehrer vorgegeben ist.

Ich brauche es so schnell wie möglich!


MfG
GodHacker
09/26/2012 19:54 D3adlySil3nc3#2
1.) Könntest du bitte mal den gesamten Fehlercode posten?

2.) Hab jetzt nicht alles durchgeschaut, ist einfach zu viel....

Aber wenn ich mich richtig erinnere, darf das nicht so sein:

Quote:
CONSTRAINT `fk_tblAbteilungen_tblAngestellte1`
FOREIGN KEY (`fiLeiter` )
REFERENCES `tblAngestellte` (`idAng_Nr` )
Hier referenzierst du das ganze...

und dann schreibst du als erstes das:

Quote:
INSERT INTO tblabteilungen (idAbt_Nr,fiLeiter,NAME,Ort) VALUES(NULL,'Verkauf','Köln');
Und zu diesem Zeitpunkt ist in tblAngestellte noch gar kein idAng befüllt.
Sprich, deine Spalte fiLeiter verweist nirgendwohin ... und das müsste ne Meldung werfen.
09/26/2012 20:37 GodHacker#3
Quote:
Originally Posted by D3adlySil3nc3 View Post
1.) Könntest du bitte mal den gesamten Fehlercode posten?

2.) Hab jetzt nicht alles durchgeschaut, ist einfach zu viel....

Aber wenn ich mich richtig erinnere, darf das nicht so sein:



Hier referenzierst du das ganze...

und dann schreibst du als erstes das:



Und zu diesem Zeitpunkt ist in tblAngestellte noch gar kein idAng befüllt.
Sprich, deine Spalte fiLeiter verweist nirgendwohin ... und das müsste ne Meldung werfen.
Dachte ich auch, nur es kommt der Fehler ja bei fast allen (bis auf 5)...

Hier der Log (inklusive Errors):
09/26/2012 21:39 D3adlySil3nc3#4
Ich will damit sagen, dass du vllt die Tables mit den enthaltenen FKs zuerst befüllen solltest.
Außerdem solltest du wohl lernen Fehlermeldungen zu lesen.
Steht ja schon alles da, aber da ich gerade Zeit habe.....

CREATE TABLE IF NOT EXISTS `tblAbteilungen` (
`idAbt_Nr` INT NOT NULL AUTO_INCREMENT ,
`fiLeiter` INT NOT NULL ,
`Name` VARCHAR(50) NOT NULL ,
`Ort` VARCHAR(50) NOT NULL ,
PRIMARY KEY (`idAbt_Nr`) ,

INSERT INTO tblabteilungen (idAbt_Nr,fiLeiter,NAME,Ort) VALUES(NULL,'Verkauf','Köln')

Schau dir die Tabelle mal an.
Was wird die Fehlermeldung :
Quote:
Column count doesn't match value count at row 1
wohl bedeuten?

Edit:
DAS:
Quote:
Query: INSERT INTO tbllieferanten (idLief_Nr,'Name',Ort,Strasse,TelefonNr) VALUES(NULL,'Ernst','Köln','Lohnstrasse','0776 5725864')
würde ich mir auch nochmal ansehen.
So wie ich das sehe gibt es bei dir kein Attribut, welches 'Name' heißt.
09/26/2012 22:47 GodHacker#5
Quote:
Originally Posted by D3adlySil3nc3 View Post
Ich will damit sagen, dass du vllt die Tables mit den enthaltenen FKs zuerst befüllen solltest.
Außerdem solltest du wohl lernen Fehlermeldungen zu lesen.
Steht ja schon alles da, aber da ich gerade Zeit habe.....

CREATE TABLE IF NOT EXISTS `tblAbteilungen` (
`idAbt_Nr` INT NOT NULL AUTO_INCREMENT ,
`fiLeiter` INT NOT NULL ,
`Name` VARCHAR(50) NOT NULL ,
`Ort` VARCHAR(50) NOT NULL ,
PRIMARY KEY (`idAbt_Nr`) ,

INSERT INTO tblabteilungen (idAbt_Nr,fiLeiter,NAME,Ort) VALUES(NULL,'Verkauf','Köln')

Schau dir die Tabelle mal an.
Was wird die Fehlermeldung : wohl bedeuten?

Edit:
DAS:

würde ich mir auch nochmal ansehen.
So wie ich das sehe gibt es bei dir kein Attribut, welches 'Name' heißt.
Ersteinmal danke... nur wie meinst du das, dass ich erst die FKs füllen soll?

Dann zu dem Attribut 'Name'...
Die ' habe ich gemacht (laut meinem Lehrer ist das auch ok), da der Begriff Name sonst hell Lila bzw. pink erscheint und dann automatisch als NAME geschrieben wird. Die ' verhindern dies (ob es auch wirklich erlaubt ist weiß ich nicht... ich habe mich nur an meinen Lehrer gehalten).

Es sieht jetzt so aus:

INSERT-Befehle:

Die Errors:

Ist ja schonmal ein Vortschritt, leider weiß ich nicht, wie ich das mit den FK Werten mache (also was da rein muss)...

#letzter Post editiert

hofe, dass jemand bei dem neuem problem helfen kann
09/27/2012 21:16 NotEnoughForYou#6
Da steht doch überall der Fehler? Entweder ne Spalte darf nicht Null sein ( weil es eben nicht so eingestellt ist ) oder die Spalte existiert nicht...
09/27/2012 21:33 GodHacker#7
Quote:
Originally Posted by NotEnoughForYou View Post
Da steht doch überall der Fehler? Entweder ne Spalte darf nicht Null sein ( weil es eben nicht so eingestellt ist ) oder die Spalte existiert nicht...
Ich muss aber wissen, was ich da hinschreiben muss. Ich habe jetzt schon alles probiert, was ich in Anleitungen gefunden habe, aber nichts klappt...
Kann mir jemand sagen, was ich bei welcher Tabelle als FK eintragen muss?
09/28/2012 16:27 D3adlySil3nc3#8
Ich versteh echt nicht was du da gemacht hast?.....
Ich habe doch bereits geschrieben was du machen sollst...

Schau dir BEVOR du etwas einfügen möchtest die Struktur der Tabelle an.

Was wird der Code:
Quote:
Error Code: 1048
Column 'fiLeiter' cannot be null
wohl bedeuten?
Sag mir das bitte!

Und dann schaust dir die Tabelle tblAbteilungen an.

Quote:
CREATE TABLE IF NOT EXISTS `tblAbteilungen` (
`idAbt_Nr` INT NOT NULL AUTO_INCREMENT ,
`fiLeiter` INT NOT NULL ,
`Name` VARCHAR(50) NOT NULL ,
`Ort` VARCHAR(50) NOT NULL ,
PRIMARY KEY (`idAbt_Nr`) ,

Query: INSERT INTO tblabteilungen (idAbt_Nr,fiLeiter,NAME,Ort) VALUES(NULL,NULL,'Verkauf','Köln')
In der Fehlermeldung steht das fiLeiter was nicht sein kann? ...... genau, NULL...
Und wieso ist das so?..... in der Tabellenstruktur steht bei fiLeiter..... NOT NULL , so und jetzt überlegen wir mal was die Fehlermeldung bedeuten könnte. ;)
09/29/2012 14:59 GodHacker#9
Ich weiß, dass es nicht NULL sein darf... ich habe nur NULL eingetragen, damit ich einen Platzhalter habe, welcher mir beim umsetzten als Fehler angezeigt wird.
09/29/2012 20:16 D3adlySil3nc3#10
Was brauchst jetzt noch?
09/29/2012 22:57 GodHacker#11
Quote:
Originally Posted by D3adlySil3nc3 View Post
Was brauchst jetzt noch?

Ist jetzt eh fast vorbei... mein Lehrer hat die Zeit verlängert und eine kleine Hilfe gegeben...

Warum ist keiner auf die Idee gekommen, dass ich einfach nur am Anfang "SET FOREIGN_KEY_CHECKS=0;" und am Ende "SET FOREIGN_KEY_CHECKS=1;" hätte schreiben brauchen? Dann noch alles in eine logische Reihenfolge und gut ist. Das "SET FOREIGN_KEY_CHECKS" sorgt dafür, dass die FKs nicht geprüft werden und erst wenn alle Daten da sind prüft er diese und setzt sie ein (das einsetzten sollte normalerweise automatisch passieren, wenn die Datensätze einen Sinn machen).

Falls jemand dieses Problem auch hat soll er es einfach so machen.