Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL स्वचालित रूप से VARCHAR बढ़ा हुआ PK बनाता है

पहचान . के लिए यह एक अच्छा उपयोग मामला है और आभासी स्तंभ। इसलिए, अतिरिक्त अनुक्रम की कोई आवश्यकता नहीं है और ट्रिगर

डेमो:

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

यह कैसे काम करता है:

  1. NUMBER GENERATED ALWAYS AS IDENTITY :यह स्वचालित रूप से आपके लिए आवश्यक अनुक्रम बनाता है, 1 से शुरू होता है और डिफ़ॉल्ट रूप से 1 से वृद्धि करता है।
  2. GENERATED ALWAYS AS VIRTUAL :यह एक वर्चुअल कॉलम बनाता है जिसके मानों की गणना अन्य कॉलम मानों का उपयोग करके स्वचालित रूप से की जाती है। इस डेमो में यह पहचान कॉलम का उपयोग करता है।
  3. LPAD :यह सुनिश्चित करेगा कि कॉलम के मान में वृद्धि होने पर शून्य को गद्देदार छोड़ दिया जाए, लेकिन यह भी सुनिश्चित करेगा कि जब संख्या बढ़ाई जाए तो यह स्ट्रिंग की लंबाई में वृद्धि नहीं करता है।
  4. CONCAT :यह TNT . को जोड़ देगा मूल्य से ऊपर।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle क्लाइंट के लिए रजिस्ट्री में NLS_LANG सेटिंग बदलने के प्रभाव

  2. निर्दिष्ट मानों में से कम से कम एक के साथ पंक्तियों को खोजने के लिए SQL क्वेरी

  3. PostgreSQL या Oracle में महीने के नाम से ऑर्डर कैसे करें

  4. Oracle में COMMIT पर ट्रिगर कैसे परिभाषित करें?

  5. oracle sql (बाएं कोष्ठक अनुपलब्ध है)