Fog: mySQL: Was bedeuted "UNIQUE"?

hallo,

was bedeutet eigentlich das attribut "unique" in einem mysql-tabellenfeld? ich habe folgendes problem: in einer tabelle sollen die felder

id [int, PRIMARY, auto_increment]
vorname [tinytext]
nachname [tinytext]
email [tinytext]

vorhanden sein. nun ist es nötig, daß der email-wert in der tabelle nur einmal vorkommt. ich habe versucht, dem feld das "unique"-attribut zu geben. mysql bringt dann die fehlermeldung, daß "length/set" für dieses feld nicht gesetzt ist. wenn ich length/set dann setze, bringt mysql unabhängig vom eingegebenen wert einen sql-error.

zur frage: was bedeuten "length/set" und "unique" genau?

danke im voraus
mfg
FOG

  1. Sup!

    Unique ist sowas ähnliches wie "primary", es verhindert doppelte Schlüsselwerte.
    Allerdings ist bei "unique" auch der Wert "null" erlaubt - von daher wäre "unique, not null" wohl besser.

    Und was length/set bei mysql heisst, weiss ich auch nicht.

    Gruesse,

    Bio

    1. Hi!

      Unique ist sowas ähnliches wie "primary", es verhindert doppelte Schlüsselwerte.

      so kann man das auch nennen, es bewirkt einfach das dieses Feld eindeutig (einigartig) ist, kein anderer Datensatz darf in dem Feld den gleichen Wert haben.

      Und was length/set bei mysql heisst, weiss ich auch nicht.

      evt. die Länge des Datenfeldes, Anzahl der Zeichen bzw. auch genauigkeit der Daten (Nachkommastellen) ???

      HTH, Frank

      1. Und was length/set bei mysql heisst, weiss ich auch nicht.
        evt. die Länge des Datenfeldes, Anzahl der Zeichen bzw. auch genauigkeit der Daten (Nachkommastellen) ???

        genau hier liegt das problem: um ein feld das attribut "unique" zu geben, muß ein wert für "length/set" vorhanden sein. phpmyadmid (respektive mysql) lehnt aber jeden wert, der für "length/set" angegeben wird als fehlerhafte sql-syntax ab.

        irgendeine idee?

        HTH, Frank

        mfg
        FOG