Fortlaufende ID mit definiertem Format

Master Maggo

Neuer Benutzer
Beiträge
1
Hallo,

ich habe nach dem folgenden "Problem" im Netz schon gesucht, aber nicht wirklich was Hilfreiches gefunden.

Undzwar möchte ich gerne den Wert der ersten Spalte (Primärschlüssel) automatisch erstellen lassen, der aber ein von mir definiertes Format besitzen soll. Ein Datensatz stellt dabei einen Mitarbeiter dar, dessen Nummer sich aus seinem Werk, seinem Arbeitsplatz und einer fortlaufenden Ziffer ergibt (siehe Anhang).

Wäre super, wenn jemand einen hilfreichen Tipp hat, wie man das realisieren kann!

Viele Grüße
Bla.PNG
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Hallo,

ich habe nach dem folgenden "Problem" im Netz schon gesucht, aber nicht wirklich was Hilfreiches gefunden.

Undzwar möchte ich gerne den Wert der ersten Spalte (Primärschlüssel) automatisch erstellen lassen, der aber ein von mir definiertes Format besitzen soll. Ein Datensatz stellt dabei einen Mitarbeiter dar, dessen Nummer sich aus seinem Werk, seinem Arbeitsplatz und einer fortlaufenden Ziffer ergibt (siehe Anhang).

Wäre super, wenn jemand einen hilfreichen Tipp hat, wie man das realisieren kann!

Viele Grüße

Automatisch? Hrm.

Code:
test=*# select * from maggo ;
  werk  | ap
-----------+----
 Dreherei  |  1
 Dreherei  |  1
 Lackierei |  5
 Lackierei |  8
(4 rows)

Time: 0,163 ms
test=*# select *, upper(substring(werk,1,3)) || '_' || to_char(ap,'FM09') || '_' || to_char((row_number() over (partition by werk,ap)),'FM09') from maggo;
  werk  | ap | ?column?
-----------+----+-----------
 Dreherei  |  1 | DRE_01_01
 Dreherei  |  1 | DRE_01_02
 Lackierei |  5 | LAC_05_01
 Lackierei |  8 | LAC_08_01
(4 rows)

Problem ist natürlich, daß nicht garantiert ist, daß das konstant ist. Wird einer gelöscht und kommt einer dazu dann stimmt das nicht mehr. Aber vielleicht hilft Dir das ja schon mal etwas.
 
Werbung:
Erstmal würde ich davon abraten einen derartigen Schlüssel als PK zu verwenden. Ein Werk oder eine Abteilung können sich ändern, willst du dann jedes mal einen neuen PK vergeben? Wenn dem so wäre würde sich ein zusammengesetzter PK aus den jeweiligen Spalten auch noch eher anbieten, das könnte die DB leicht umsetzen.

Ich denke aber ein künstlicher Schlüssel der immer eindeutig bleibt ist das was jeder Datensatz braucht. Als "sprechende" ID kann man dann einen derartigen Wert problemlos erzeugen und anzeigen, läuft aber nicht Gefahr das das mal zum Problem wird.
 
Zurück
Oben