MySQL generiert eine eindeutige ID, wenn die ID NULL istMySql

MySQL DBMS-Forum
Guest
 MySQL generiert eine eindeutige ID, wenn die ID NULL ist

Post by Guest »

Ich habe also ein Projekt, bei dem ich Inventargegenstände anhand von UPC-Barcodewerten indiziere. Meine Inventartabelle hat die primäre eindeutige Spalte upcID, die Spalte wird nicht automatisch erhöht. In Fällen, in denen ich einen Barcode scanne, um ihn der Tabelle hinzuzufügen, enthält er die Barcode-GS1-Nummer, die er als ID verwendet. Wir möchten Artikel ohne Barcode hinzufügen und eine eindeutige 12-stellige Nummer generieren, die mit „99991“ beginnt, als gefälschter Herstellerteil des GS1-UPC-Formats. Der generierten ID sollte ein eindeutiger Teil mit weiteren 7 Ziffern hinzugefügt werden, sodass wir beispielsweise „999910000001“ erhalten. Sobald die ID für die Klasse des Inventarartikels in der Tabelle ist, kann ich Barcode-Etiketten drucken und sie an diesen Artikeln anbringen.
Ich habe mir also angesehen, wie man einen Auslöser vor dem Einfügen macht. Dies würde einen Code generieren. Wenn die ID der Einfügung NULL ist, vergleichen Sie sie mit den Zeilen in der Tabelle und erhöhen Sie sie nach Bedarf, bis sie eindeutig ist. Führen Sie dann die Einfügung mit dieser ID als ID durch. Theoretisch etwa so etwas (bitte bedenken Sie, dass es schon lange her ist, dass ich einen MySQL-Prozedurtrigger schreiben musste)

Code: Select all

BEGIN
DECLARE isupcunique TINYINT;
DECLARE generatedupc DOUBLE;
SET isupcunique=0;
SET generatedupc=999910000000;
IF new.upcID IS NULL
WHILE isupcunique = 0

'see if its there
IF (select upcID from thetable where upcID=generatedupc limit 1) THEN
'do nothing but add to generatedupc
SET generatedupc+=1;
ELSE
SET new.upcID=generatedupc;
SET isupcunique=1
END IF;

END WHILE;
END IF;
END;
Mir ist klar, dass mein Code nicht geschlossen ist. Ich glaube nicht, dass IFs in Triggern vorhanden sind ... Nur der allgemeine Kern dessen, was ich meiner Meinung nach tun müsste.
Irgendwelche Ideen für mich?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post