CREATE DOMAIN DenkProblem

Hallo,

ich bin absoluter Postgres-Neuling und
habe ein Problem mit dem Erzeugen von Wertebereichen.

Ich habe 5 Werte z.B. Name:VARCHAR(30)
PLZ:CHAR(5)

Nun möchte ich schreiben CREATE DOMAIN postal_adr AS …

da wo “…” steht müsste ein Array stehen, aber ich weiss nicht wie ich das schreibe. Kann mir einer einen Tip geben.

Ich weiß das ich nach AS den datentyp array benutzen kann,
aber irgendwie krige ich das nicht hin!

Gruss
Franky

Hallo Franky,

verwechselst Du nicht verschiedene Dinge?


Create Domain TYPE_PLZ AS char(6);

Hier wird in der Datenbank TYPE_PLZ durch “char(6)” ersetzt


Create Domain TYPE_PLZ_ARRAY AS char(6)[];

Hier wird in der Datenbank TYPE_PLZ_ARRAY durch “char(6)[]” ersetzt. TYPE_PLZ_ARRAY ist hier ein eindimensionales Array.


Oder wolltest Du einen neuen Datentyp erzeugen?

CREATE TYPE postal_adr AS (Name VARCHAR(30), PLZ CHAR(5), ...);

mfg

fristo

Hallo,

ja genau ich hatte einen neuen Datentyp erstellen wollen und mich
etwas schräg ausgedrückt


danke

Franky

Hi,

eine kurze Frage


CREATE DOMAIN postal_Adr AS (Name VARCHAR(30), PLZ CHAR(5), …);

geht nicht oder?

Weil ich als Vorgabe habe (um beim oben genannten Beispiel zu bleiben…) Name: VARCHAR(30) und PLZ(CHAR(5)

nun soll ich aber eine Domain erzeugen postal_adr [name, plz,…]

angelich soll das funktionieren, aber meiner Meinung nicht da eine
Domain doch nur von Standarddtentypen abegeleitet werden können?
(Deshalb kann ich auch nicht …DOMAIN my_postal_adr as postal_adr)
oder bin ich völlig aus der Spur?

Gruss
Franky

Hallo Franky,

Richtig gedacht!

Was Du als ARRAY bezeichnest ist in “C” ein Structur! Lese noch mal in der Doku nach wie in PostgreSQL ein Array definiert ist und wie man damit arbeiten kann. Auch das Kapitel über die Defintion der SQL-Befehle. Danach wirst Du einiges besser verstehen.


Nachtrag:

Create Domain entspricht in C/C++ einen “typedef”
Create Type entspricht in C/C++ eine “structur”

Wenn Du in PostgeSQL eine Tabelle definierst, kannst natürlich Du deine zuvor definierten Typen (und Domain’s) verwenden.



mfg

fristo

Hallo,


ja genau. Ich teile einfach meine “Struktur” so auf
das ich einzelne Domain erzeuge mit “Strukturname”_“StrukturElement”
AS Standarddatentyp.


Vielleicht hätte ich 'mal die Postgres FAQ, die im Netz rumschwirren
lesen sollen und dann das gelesene durchdenken!


Gruss
Franky