ENUM- und SET-Spalten
          stellen eine effiziente Möglickeit dar, Spalten zu
          definieren, die nur eine festgelegte Wertemenge aufnehmen
          können. Siehe auch Abschnitt 11.4.4, „Der Spaltentyp ENUM“, und
          Abschnitt 11.4.5, „Der Spaltentyp SET“. Allerdings ermöglichen
          ENUM- und SET-Spalten
          vor MySQL 5.0.2 keine echten Constraints bei der Eingabe
          ungültiger Daten:
        
              ENUM-Spalten haben immer einen
              Vorgabewert. Wenn Sie keinen Vorgabewert angeben, dann ist
              er NULL für Spalten, die
              NULL unterstützen, andernfalls der
              erste Aufzählungswert in der Spaltendefinition.
            
              Fügen Sie einen falschen Wert in eine
              ENUM-Spalte ein oder erzwingen einen
              Wert in einer ENUM-Spalte mithilfe von
              IGNORE, dann wird dieser auf den
              reservierten Aufzählungswert 0
              gesetzt, der als Leer-String im String-Kontext angezeigt
              wird.
            
              Wenn Sie einen falschen Wert in eine
              SET-Spalte einfügen, wird dieser
              falsche Wert ignoriert. Kann die Spalte beispielsweise die
              Werte 'a',
              'b' und
              'c' enthalten, dann würde
              der Versuch, 'a,x,b,y'
              zuzuweisen, den Wert 'a,b'
              zur Folge haben.
            
          Ab MySQL 5.0.2 können Sie den Server so konfigurieren, dass
          er den strikten SQL-Modus verwendet. Siehe auch
          Abschnitt 5.2.5, „Der SQL-Modus des Servers“. Ist der strikte Modus
          aktiviert, dann fungiert die Definition einer
          ENUM- oder SET-Spalte
          als Beschränkung für Werte, die in die Spalte eingegeben
          werden. Bei Werten, die die folgenden Bedingungen nicht
          erfüllen, tritt ein Fehler auf:
        
              Ein ENUM-Wert muss zu der Wertemenge
              gehören, die in der Spaltendefinition aufgelistet ist,
              oder ein internes numerisches Äquivalent eines Werts in
              der Wertemenge sein. Der Wert darf nicht der Fehlerwert
              (also 0 oder der Leer-String) sein. Bei einer Spalte, die
              als
              ENUM('a','b','c')
              definiert ist, sind Werte wie etwa
              '',
              'd' oder
              'ax' unzulässig und werden
              abgewiesen.
            
              Ein SET-Wert muss der Leer-String oder
              ein Wert sein, der nur aus den in der Spaltendefinition
              aufgeführten Werten besteht, die durch Kommata getrennt
              sind. Bei einer Spalte, die als
              SET('a','b','c')
              definiert ist, sind Werte wie etwa
              'd' oder
              'a,b,c,d' unzulässig und
              werden abgewiesen.
            
          Fehler aufgrund ungültiger Werte können im strikten Modus
          unterdrückt werden, indem Sie INSERT
          IGNORE bzw. UPDATE IGNORE
          verwenden. In diesem Fall wird statt eines Fehlers eine
          Warnung erzeugt. Bei ENUM wird der Wert als
          Fehlermitglied (0) eingefügt. Bei
          SET wird der Wert wie vorgegeben
          eingefügt, sofern nicht vorhandene ungültige Teil-Strings
          gelöscht werden. So führt etwa
          'a,x,b,y' zum Wert
          'a,b'.
        
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

