Robert R.: MySQL 5.5.34 aus dem XAMPP-Paket

Beitrag lesen

Liebe Mitdenker,
liebe Wissende,
liebe Neugierige,

ja!

Ich hätt' da gerne mal wieder ein Problem :-O

Eintrag in eine Tabelle der DB. In einer Spalte stehen bei einigen Zeilen Filebezeichner. Nicht jede Zeile muss einen haben, das Feld kann also leer bleiben. Wenn es aber ausgefüllt ist, darf der Wert in der Spalte nur einmal vorkommen.

Wie kann ich das regeln? Unique Index gibt einen Fehler, weil doch manche Zeilen NULL oder Leerstring enthalten (habe ich beides ausprobiert).

Wie kann ich verhindern, dass ein doppelter Eintrag in der Spalte auftaucht, mit Ausnahme von NULL oder Leerstring. Die sind beide erlaubt.

Man müsste die Zeile der Ordnung halber als eigene Tabelle ausgliedern, das weiß ich wohl. Das soll aber nicht sein. Ich darf nur an der einen Tabelle rummachen.

Der Fehler war bisher nicht aufgefallen, da nur wenig Daten drinstanden in der Tabelle, aber so langsam kommen dann doch schon mal Doppelte Links vor und dann streiken immer die View-Funktionen. Lezter Eintrag gilt.

Mir fällt jetzt nur ein, einen Trigger zu setzen, der vorher guckt, ob es schon einen gleichlautenden Eintrag gibt unter Auslassung von NULL und Leer. Kann man das noch als "relativ sauuber" bezeichnen?

Lieber wäre mir ein spezieller Indextyp, der sowas von Haus aus kann, aber den gibts wohl nicht?

Spirituelle Grüße
Euer Robert

--
Möge der Forumsgeist wiederbelebt werden!