[MySQL] InnoDB 'NULL' zulassen

Von Gestern

Cadet 3rd Year
Registriert
Nov. 2004
Beiträge
37
Ein kräftiges 'Hallo' an alle Freunde des Quellcodes

Ich habe eine frage bezüglich des Tabellentyps InnoDB, welcher in MySQL zur verfügung steht.

Mit InnoDB kann ich ja bekanntlich auch referenzielle Integrität verwirklichen. Für einen neuen Datensatz muss der Fremdschlüssel zu einer verknüpften Tabelle in dieser bereits vorhanden sein, dass der INSERT durchgeführt wird. Dies ist ja allgemein sehr wünschenswert. Allerdings lässt InnoDB einen leeren Eintrag der ID (also NULL) auch nicht zu, da diese ID in der verknüpften Tabelle nicht existiert.

Meine Frage ist nun, ob und wenn, wie es möglich ist in diesen Fremdschlüsselfelder auch NULL zuzulassen.

Ich bin schon ne halbe Ewigkeit auf der Suche und bin um jeden Hinweis dankbar... :)
 
Du musst nen alter table machen und statt
NOT NULL
NULL

Dann klappts auch mit den Nachbarn.
 
Danke für den Tipp, aber darauf wäre ich auch selber gekommen.

Die Spalte lässt NULL-Werte generell zu, aber meckert, weil NULL kein Key der verknüpften Tabelle ist und daher streng genommen keine referenzielle Integrität besteht.

Aber trotzdem nochmal danke. :D
 
Dann hast du irgendetwas anderes Falsch.
Wenn der Wert NULL ist, dann wird in der anderen Tabelle nicht gekuckt, ob dieser Wert existiert.

Wie genau sieht deine Tabelle, Query und die Fehlermeldung aus?
 
Danke für die Hartnäckigkeit.

Du hattest recht. Mein Fehler war, dass ich anstatt NULL einen leeren String einfügen wollte also ''. Warum auch immer.
Hab ich beim raussuchen des SQLs dann gleich bemerkt(auch wenn ich mir den schon 10 mal angesehen hab).

Der INSER, der fehl schlug:
INSERT INTO informationsveranstaltungen (IV_ID,IV_DZ_ID,IV_Termin,IV_Lokalitaet,IV_Schwerpunkt,IV_Preis) VALUES ('','','2006-12-21','asfdl','1', '23');

Und damit Funzts: :freaky:
INSERT INTO informationsveranstaltungen (IV_ID,IV_DZ_ID,IV_Termin,IV_Lokalitaet,IV_Schwerpunkt,IV_Preis) VALUES ('',NULL,'2006-12-21','asfdl','1', '23');
 
Zurück
Oben