## DEFAULT-Spezifikation (default_spec)

Eine DEFAULT-Spezifikation (default_spec) wird durch die Angabe des Schlüsselwortes DEFAULT und eines Vorschlagswerts (DEFAULT-Wert) gebildet. Die maximale Länge eines Vorschlagswerts beträgt 254 Zeichen.

### Syntax

<default_spec> ::= DEFAULT <literal>
| DEFAULT NULL
| DEFAULT USER
| DEFAULT USERGROUP
| DEFAULT SYSDBA
| DEFAULT DATE
| DEFAULT TIME
| DEFAULT TIMESTAMP
| DEFAULT UTCDATE
| DEFAULT UTCDIFF
| DEFAULT TIMEZONE
| DEFAULT TRUE
| DEFAULT FALSE
| DEFAULT TRANSACTION
| DEFAULT STAMP
| DEFAULT SERIAL[(<unsigned_integer>)]

### Beispiele

SQL-Tutorial, Nummerngenerator für eine einzelne Spalte einer Tabelle

### Erläuterung

Wenn für eine Spalte eine DEFAULT-Spezifikation angegeben wurde, muss der Vorschlagswert (<literal>, NULL, USER,...) ein Wert sein, der in die Spalte eingefügt werden kann.

DEFAULT-Spezifikation | Erläuterung
DEFAULT <literal> | Das Literal muss mit dem Datentyp der Spalte vergleichbar sein.
DEFAULT USER | Liefert den Benutzernamen des aktuellen Benutzers und kann nur für Spalten vom Datentyp [VAR]CHAR(n) bzw. CHAR(n) (n>=32) angegeben werden.
DEFAULT USERGROUP | Liefert für Mitglieder einer Benutzergruppe den Benutzergruppennamen bzw. den Benutzernamen für Benutzer, die keiner Benutzergruppe angehören. Diese DEFAULT-Spezifikation kann nur für Spalten vom Datentyp [VAR]CHAR(n) (n>=32) angegeben werden.
DEFAULT SYSDBA | Liefert den Namen des Datenbanksystemadministrators (SYSDBA-Benutzers) und kann nur für Spalten vom Datentyp [VAR]CHAR(n) (n>=32) angegeben werden.
DEFAULT DATE | Liefert das aktuelle Datum und kann nur für Spalten vom Datentyp DATE angegeben werden.
DEFAULT TIME | Liefert die aktuelle Zeit und kann nur für Spalten vom Datentyp TIME angegeben werden.
DEFAULT TIMESTAMP | Liefert den aktuellen Zeitstempel und kann nur für Spalten vom Datentyp TIMESTAMP angegeben werden.
DEFAULT UTCDATE | Liefert den aktuellen UTC-Zeitstempel (Greenwich Mean Time) und kann nur für Spalten vom Datentyp TIMESTAMP angegeben werden.
DEFAULT UTCDIFF | Liefert die Zeitdifferenz in Stunden zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe und kann nur für Spalten vom Datentyp FLOAT(p) (p>=4) oder FIXED(p,s) (s>=2, p>=s+2) angegeben werden (ab Version 7.4.04.02).
DEFAULT TIMEZONE | Liefert die Zeitdifferenz in der Form hhmmss zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe und kann nur für Spalten vom Datentyp FLOAT(p) (p>=6) oder FIXED(p,s) (s>=0, p>=s+6) angegeben werden.
DEFAULT TRUE/DEFAULT FALSE | Können nur für Spalten vom Datentyp BOOLEAN angegeben werden.
DEFAULT TRANSACTION | Liefert die Identifikation der aktuellen Transaktion und kann nur für Spalten vom Datentyp CHAR(n) BYTE (n>=8) angegeben werden.
DEFAULT STAMP | Liefert einen innerhalb des Datenbanksystems eindeutigen acht Zeichen langen Wert und kann nur für Spalten vom Datentyp CHAR(n) BYTE (n>=8) angegeben werden. Wenn eine Tabelle ohne Schlüsselspalte definiert wird, legt das Datenbanksystem implizit eine Schlüsselspalte SYSKEY CHAR(8) BYTE an. Die Schlüsselwerte in der Spalte SYSKEY sind jedoch nur innerhalb einer Tabelle eindeutig, d.h. in zwei voneinander verschiedenen Tabellen können gleiche Werte in der SYSKEY-Spalte existieren. Wenn eindeutige Schlüssel innerhalb des gesamten Datenbanksystems erwünscht sind, kann eine Schlüsselspalte mit der DEFAULT-Spezifikation STAMP definiert werden.
DEFAULT SERIAL [(<unsigned_integer)] | Liefert einen Nummerngenerator für positive ganze Zahlen und kann nur für Spalten vom Datentyp INTEGER, SMALLINT und FIXED ohne Nachkommastellen angegeben werden (siehe weiter unten: Nummerngenerator). Durch Angabe einer Integer-Zahl ohne Vorzeichen (unsigned_integer) (muss größer als 0 sein) kann der erste vom Generator erzeugte Wert definiert werden. Fehlt diese Angabe, wird als erster Wert 1 geliefert. Wenn der Wert 0 in diese Spalte durch eine INSERT-Anweisung eingefügt wird, wird der aktuelle Zahlengeneratorwert geliefert, nicht der Wert 0. In jeder Tabelle darf es höchstens eine Spalte mit der DEFAULT-Spezifikation DEFAULT SERIAL geben.

Siehe auch:

DEFAULT-Prädikat (default_predicate)

### Nummerngenerator

Durch Angabe der DEFAULT-Spezifikation DEFAULT SERIAL(n) bzw. des Datentyps SERIAL(n) kann ein Nummerngenerator erzeugt werden, der implizit von 1 oder einem vorgegebenen Wert n beginnend positive, ganze Zahlen erzeugt.

Der Datentyp SERIAL(n) kann als DEFAULT-Spezifikation für Spalten verwendet werden, die nur Festkommazahlen ohne Nachkommastellen enthalten können, da SERIAL(n) auf FIXED(10) DEFAULT SERIAL(n) abgebildet wird.

Der maximal vom Nummerngenerator erzeugte Wert ist (10**m)-1, wenn die Defaultspezifikation DEFAULT SERIAL für eine Spalte des Datentyps FIXED(m) definiert wird.

SERIAL-Spalten kann nur beim Einfügen einer Zeile ein Wert zugewiesen werden. Die Werte einer SERIAL-Spalte können nicht mit Hilfe einer UPDATE-Anweisung verändert werden. Eine SERIAL-Spalte kann deshalb zur eindeutigen Bestimmung der Einfügereihenfolge und zur eindeutigen Identifikation einer Zeile in einer Tabelle verwendet werden.