Problem mit NULL-Werten in MySQL und OpenOffice
Verfasst: Do, 27.07.2006 01:30
Liebe Liste,
ich werde nicht Schlau aus dem Konzept mit den NULL-Werten in MySQL (in Zusammenarbeit mit OO).
In MySQL gibt es die Möglichkeit Spalten das Attribut "NOT NULL" zu geben oder die Möglichkeit von NULL zu erlauben. Im zweiten Fall sieht phpmyadmin NULL als Standard vor.
Wenn ich mit einem OpenOffice-Formular nun auf eine MySQL-Tabelle zugreifen will gibt es folgende Probleme:
1. Wenn ich die Tabellenspalten mit dem Attribut NOT NULL versehe meckert OpenOffice, wenn nicht alle TAbellenspalten auch im aktuellen Formular sind und gibt die Fehlermeldung aus: Spalte xyz darf nicht NULL sein.
2. Also Richte ich die Tabelle so ein, dass NULL-Werte erlaubt sind. Nun schreibt OpenOffice für alle Felder in die ich nicht explizit etwas reinschreibe NULL rein. (Bzw. macht das die Datenbank... da NULL als Standard vorgesehen ist???) -> wenn ich jetzt einen Datensatz, den ich gerade eingegeben habe per MySQL-Abfrage suchen will, gibt er mir den Datensatz dann nicht aus, wenn in der Abfrage Bspw. nach Name und Ort suche und der ORT NULL ist (weil im SQL-STatement "ort LIKE %%" steht. (Suchfunktion über Makro) Klar, laut MySQL Referenz müsste man IS NULL explizit angeben. Ich könnte nun alle SQL-Abfragen umbauen, damit auch nach NULL-Werten explizit gesucht wird, aber das erscheint mir zu umständlich.
Jetzt gibt es aber in OpenOffice die Möglichkeit den Feldern im Register "Eigenschaften -> Daten" die Option "Leere Zeichenfolge ist NULL" zu geben. Unabhängig davon, was ich da rein schreibe wird in der Datenbank der Spalte ein NULL-Wert zugeordnet. Das funktioniert also nicht. (Bug? Oder verstehe ich da was nicht?)
Gebe ich in der MySQL-Datenbank allen Spalten das Attribut NULL mit dem Standardwert "" (also ohne Eintrag) dann funktioniert es. Allerdings ändert PhpMyadmin jedesmal wenn ich die Spalteneigenschaften editiere diese Attribute wieder so, dass als Standardwert NULL eingetragen ist.
Ich habe ein wenig das Gefühl, ich verstehe das Konzept mit den NULL-Werten nicht richtig.
Kann mir jemand helfen? Wie macht ihr das bei MySQL und OpenOffice?
grüße
laura
ich werde nicht Schlau aus dem Konzept mit den NULL-Werten in MySQL (in Zusammenarbeit mit OO).
In MySQL gibt es die Möglichkeit Spalten das Attribut "NOT NULL" zu geben oder die Möglichkeit von NULL zu erlauben. Im zweiten Fall sieht phpmyadmin NULL als Standard vor.
Wenn ich mit einem OpenOffice-Formular nun auf eine MySQL-Tabelle zugreifen will gibt es folgende Probleme:
1. Wenn ich die Tabellenspalten mit dem Attribut NOT NULL versehe meckert OpenOffice, wenn nicht alle TAbellenspalten auch im aktuellen Formular sind und gibt die Fehlermeldung aus: Spalte xyz darf nicht NULL sein.
2. Also Richte ich die Tabelle so ein, dass NULL-Werte erlaubt sind. Nun schreibt OpenOffice für alle Felder in die ich nicht explizit etwas reinschreibe NULL rein. (Bzw. macht das die Datenbank... da NULL als Standard vorgesehen ist???) -> wenn ich jetzt einen Datensatz, den ich gerade eingegeben habe per MySQL-Abfrage suchen will, gibt er mir den Datensatz dann nicht aus, wenn in der Abfrage Bspw. nach Name und Ort suche und der ORT NULL ist (weil im SQL-STatement "ort LIKE %%" steht. (Suchfunktion über Makro) Klar, laut MySQL Referenz müsste man IS NULL explizit angeben. Ich könnte nun alle SQL-Abfragen umbauen, damit auch nach NULL-Werten explizit gesucht wird, aber das erscheint mir zu umständlich.
Jetzt gibt es aber in OpenOffice die Möglichkeit den Feldern im Register "Eigenschaften -> Daten" die Option "Leere Zeichenfolge ist NULL" zu geben. Unabhängig davon, was ich da rein schreibe wird in der Datenbank der Spalte ein NULL-Wert zugeordnet. Das funktioniert also nicht. (Bug? Oder verstehe ich da was nicht?)
Gebe ich in der MySQL-Datenbank allen Spalten das Attribut NULL mit dem Standardwert "" (also ohne Eintrag) dann funktioniert es. Allerdings ändert PhpMyadmin jedesmal wenn ich die Spalteneigenschaften editiere diese Attribute wieder so, dass als Standardwert NULL eingetragen ist.
Ich habe ein wenig das Gefühl, ich verstehe das Konzept mit den NULL-Werten nicht richtig.
Kann mir jemand helfen? Wie macht ihr das bei MySQL und OpenOffice?
grüße
laura