Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Fortlaufende ID mit definiertem Format

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Master Maggo, 4 September 2014.

  1. Master Maggo

    Master Maggo Neuer Benutzer

    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 von einem Moderator bearbeitet: 4 September 2014
  2. akretschmer

    akretschmer Datenbank-Guru

    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.
     
  3. Walter

    Walter Administrator Mitarbeiter

    Warum dieser komische Primary Key? Wenn der Mitarbeiter in eine andere Abteilung wechselt, was tust Du dann?
     
    akretschmer gefällt das.
  4. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden