[MSSQL] Unique nur wenn auch was im Feld steht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MSSQL] Unique nur wenn auch was im Feld steht

    Hallo, ich wollte bei einer MySQL Tabelle (per mysqladmin), für eine Spalte einstellen, das kein Wert doppelt erscheinen soll. Wenn der Feld leer ist, soll diese Regel aber nicht gelten.

    Also dürfen eintragungen nur einmal vorkommen, aber leere Felde öfters.

    Wenn ich aber nun unique aktevieren will, meckert er auch wegen den leeren Feldern. Gibt es da irgendeine Möglichkeit?

  • #2
    Das hat in erster Linie nix mit dem Index zu tun, denn mehrfache NULL Einträge sind zulässig.
    In dem Fall muss aber auch NULL in den Feldern stehen und nicht irgendwas anderes (ein default Wert z.B.) und das Feld darf net NOT NULL deklariert sein.

    Laut Manual müsst's dann gehen.

    Manual Sagt:
    In MySQL, a UNIQUE index is one in which all values in the index must be distinct. An error occurs if you try to add a new row with a key that matches an existing row. The exception to this is that if a column in the index is allowed to contain NULL values, it can contain multiple NULL values. This exception does not apply to BDB tables, for which indexed columns allow only a single NULL.

    Kommentar


    • #3
      Wenn ich jetzt im Nachhinein, die Felder als Standart NULL bestimme, gibt es dann eine kurze möglichkeit in die leeren Felder NULL reinzubekommen oder muß ich das einzeln per hand machen?

      Kommentar


      • #4
        UPDATE tabelle SET feld = NULL WHERE feld = ''
        ?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          aber nicht vergessen, die spalte per ALTER TABLE von NOT NULL auf NULL zu sezten. Sonst knallt's wieder.

          Kommentar

          Lädt...
          X