पहचान . के लिए यह एक अच्छा उपयोग मामला है और आभासी स्तंभ। इसलिए, अतिरिक्त अनुक्रम की कोई आवश्यकता नहीं है और ट्रिगर ।
डेमो:
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);
परिणाम:
select * from sample;
SERIAL_NO TNT_ID WTV
---------- ----------------------- ----------
1 TNT00001 100
2 TNT00002 200
3 TNT00003 300
यह कैसे काम करता है:
NUMBER GENERATED ALWAYS AS IDENTITY
:यह स्वचालित रूप से आपके लिए आवश्यक अनुक्रम बनाता है, 1 से शुरू होता है और डिफ़ॉल्ट रूप से 1 से वृद्धि करता है।GENERATED ALWAYS AS VIRTUAL
:यह एक वर्चुअल कॉलम बनाता है जिसके मानों की गणना अन्य कॉलम मानों का उपयोग करके स्वचालित रूप से की जाती है। इस डेमो में यह पहचान कॉलम का उपयोग करता है।LPAD
:यह सुनिश्चित करेगा कि कॉलम के मान में वृद्धि होने पर शून्य को गद्देदार छोड़ दिया जाए, लेकिन यह भी सुनिश्चित करेगा कि जब संख्या बढ़ाई जाए तो यह स्ट्रिंग की लंबाई में वृद्धि नहीं करता है।CONCAT
:यहTNT
. को जोड़ देगा मूल्य से ऊपर।