Ini adalah contoh penggunaan yang baik untuk IDENTITY dan VIRTUAL kolom. Jadi, tidak perlu Urutan tambahan dan PICU .
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);
Hasil:
select * from sample;
SERIAL_NO TNT_ID WTV
---------- ----------------------- ----------
1 TNT00001 100
2 TNT00002 200
3 TNT00003 300
Cara kerjanya:
NUMBER GENERATED ALWAYS AS IDENTITY
:Ini secara otomatis membuat urutan yang diperlukan untuk Anda, dimulai dengan 1 dan bertambah 1 secara default.GENERATED ALWAYS AS VIRTUAL
:Ini membuat kolom virtual yang nilainya dihitung secara otomatis menggunakan nilai kolom lainnya. Dalam demo ini menggunakan kolom identitas.LPAD
:Ini akan memastikan nol dibiarkan terisi saat nilai kolom bertambah, tetapi juga akan memastikan bahwa ketika angka bertambah, panjang string tidak bertambah.CONCAT
:Ini akan menggabungkanTNT
ke nilai di atas.