2016-07-22 7 views
-1

Ich habe einen Mitarbeiter Tabelle erstellt, die folgende Spalten mit:erstellen empid automatisch nach bestimmten Muster

id || empId || name || companyCode 
== ====== ==== ========= 

Ich möchte emplId automatisch erstellt werden.

Option1: Jeder Mitarbeiter sollte eine eindeutige ID erhalten.
EmpId sollte mit CompanyCode beginnen.

Angenommen Buchungskreis ist ‚ci‘, dann seine Mitarbeiter-ID mit ci beginnt sollte wie CI101, ci102 ....

Gibt es eine Möglichkeit, es zu tun, wie eine Sequenz usw. zu schaffen?
Hinweis: Ich verwende mySql.
Erwartete Ausgabe:

id || empId || name || companyCode 
    == ====== ==== ========= 
    1  ci101  abc  ci 
    2  xi101  xyz  xi 
    3  ci102  lkj  ci 

Option 2: Id jeden Mitarbeiter des Unternehmens mit 100 Wie den ersten Mitarbeiter von X, Y oder Z Unternehmen sollte mit 101 beginnen, wie weiter unten beginnen sollte:

id || empId || name || companyCode 
    == ====== ==== ========= 
    1  101  abc  ci 
    2  101  xyz  xi 
    3  102  lkj  ci 

Bitte helfen.

Antwort

0

Sie können einen Trigger haben, die die eingefügte Zeile des empid aktualisiert basierend auf Buchungskreis und id, hoffen, dass diese

CREATE TRIGGER empid 
AFTER INSERT ON 'employeeTbl' for each row 
begin 
    UPDATE `employeeTbl` SET `empId ` = CONCAT(NEW.companyCode, NEW.id) where id=New.id; 
END; 
0

hilft Ich mag nicht über die Optionen, die Sie vorschlagen, weil willkürliches IDs jede nicht tragen soll Bedeutung. Gemäß normalen Formularen sollte die Tatsache, dass eine ID eine Mitarbeiter-ID ist oder dass ein Mitarbeiter bei einem Unternehmen beschäftigt ist, aus der Datenbank ermittelt werden, nicht aus dem Wert der ID.

Der einfachste Weg, um Ihre Mitarbeiter-ID zu erzeugen, ist von 1 bis zur höchsten Zugabe:

insert into employees 
select 1 + max(id) as new_id, ... values ... 
from employees 
Verwandte Themen