Dette er et godt eksempel på IDENTITY og VIRTUEL kolonner. Så der er ikke behov for en ekstra SEKVENS og TRIGGER .
Demo:
CREATE TABLE sample (
serial_no NUMBER GENERATED ALWAYS AS IDENTITY,
tnt_id GENERATED ALWAYS AS (CONCAT('TNT', LPAD(serial_no, 5, '0'))) VIRTUAL,
wtv NUMBER(3)
);
insert into sample (wtv) values(100);
insert into sample (wtv) values(200);
insert into sample (wtv) values(300);
Resultat:
select * from sample;
SERIAL_NO TNT_ID WTV
---------- ----------------------- ----------
1 TNT00001 100
2 TNT00002 200
3 TNT00003 300
Sådan fungerer det:
NUMBER GENERATED ALWAYS AS IDENTITY
:Dette opretter automatisk den nødvendige sekvens for dig, starter med 1 og stiger med 1 som standard.GENERATED ALWAYS AS VIRTUAL
:Dette opretter en virtuel kolonne, hvis værdier beregnes automatisk ved hjælp af andre kolonneværdier. I denne demo bruger den identitetskolonnen.LPAD
:Dette vil sikre, at nuller efterlades polstret, mens kolonneværdien øges, men vil også sikre, at når tallet øges, øges det ikke længden af strengen.CONCAT
:Dette vil sammenkædeTNT
til over værdi.