it-swarm.com.de

Wie erstelle ich ein Aufzählungsfeld mit einem Standardwert?

  types = { # add your custom types here
          'attendance': ('Notconfirmed','Coming', 'Notcoming', 'Maycome',),
          }

  CREATE TYPE attendance AS ENUM types;

Die obige Abfrage erstellt eine Aufzählung der Anwesenheitsarten mit Aufzählungszeichen, die in den Typen angegeben sind. Wie erstelle ich einen Typ mit Standardbeschriftung? In diesem Fall möchte ich die Anwesenheitsart mit dem Standardwert Nicht bestätigt erstellen.

13
RaviKiran

Ich habe das gleiche wie Sie ausprobiert und bekam nur in stackoverflow eine Antwort. Es ist möglich, ENUM mit einem Standardwert zu erstellen. Hier ist was ich für dich habe.

CREATE TYPE status AS ENUM ('Notconfirmed','Coming', 'Notcoming', 'Maycome');

CREATE TABLE t (
    id serial,
    s status default 'Notconfirmed' -- <==== default value
);

INSERT INTO t(id) VALUES (default) RETURNING *; 

Das hat für mich wie ein Zauber funktioniert.

40

Zusätzlich zu Sudarsans Worten ...

Falls jemand ein Beispiel in einem anderen Schema benötigt:

CREATE TABLE schema_name.table_name ( -- 
    id serial,
    s schema_name.type_name default 'Notconfirmed'::schema_name.type_name
);
2
Norman Edance

Ich bin nicht sicher, warum wir in unserer Tabelle eine Abfrage haben müssen. Ich habe versucht ohne diese Leitung noch zu funktionieren.

INSERT INTO t(id) VALUES (default) RETURNING *;
0
ferdousulhaque