enum in db2

socke999

Erfahrenes Mitglied
Hallo zusammen, wie ist es möglich in db2 eine Spalte vom Typ enum machen?
also in MYSQL z.B. würde das ja so gehen:
Code:
 alter table person add vip ENUM ('N','V') default 'N';

Das ich der Tabelle person eine neue Spalte hinzufüge und 'N' als Standardwert setze.

Ich hab leider keine Möglichkeit gefunden um das in DB2 auch so hinzu bekommen, weiß da jemand weiter?
 
Moin socke999,

die entsprechende Syntax unter DB2 wäre
SQL:
 ALTER TABLE person ADD vip CHAR(1) NOT NULL WITH DEFAULT 'N';
ALTER TABLE person ADD CONSTRAINT vipcheck CHECK (  vip IN ('N', 'V') );

Bei einen nachträglichen Anfügen dieses Feldes musst Du es also in 2 Statements formulieren.
Wenn Du es schon beim CREATE TABLE verwenden kannst, dann kann es alles mit in das CREATE.

Diesen Weg würde ich empfehlen. Du kannst Dich alternativ einem ENUM-Wert annähern über die Definition eines USER DEFINED TYPE namens (z.B.) "viptype", der dann wiederum als CHAR(1) mit dieser Gültigkeitsregel definiert sein könnte.
Aber da, wie geschrieben, auch dieses auch nur eine Annäherung an ein ENUM-Feature sein würde, würde ich Variante 1 empfehlen.

Grüße
Biber
 
Zurück