कस्टम उत्पन्न पहचान स्तंभ में ओरेकल

0

सवाल


मैं प्रलेखन पढ़ने के लिए पहचान कॉलम में Oracle के रूप में यहाँ विस्तृत: https://docs.oracle.com/en/database/other-databases/nosql-database/19.1/java-driver-table/creating-tables-identity-column.html

दस्तावेज में उल्लेख किया है कि मूल्यों को मिलता है कि द्वारा डाला अनुक्रम जनरेटर में पहचान स्तंभ integers हैं. यह यहां पाया जा सकता है https://docs.oracle.com/en/database/other-databases/nosql-database/19.1/java-driver-table/sequence-generator-attributes.html

अब मेरा सवाल यह है: वहाँ एक तरीका है करने के लिए कस्टम मूल्यों उत्पन्न पहचान स्तंभ के लिए? अन्य की तुलना में पूर्णांक मान. कहते हैं, एक स्ट्रिंग की तरह 'ID001', 'ID002' आदि?
अग्रिम में बहुत धन्यवाद

oracle sql
2021-11-24 06:26:45
2

सबसे अच्छा जवाब

2

पहली लगता है कि क्यों आप का उपयोग करना चाहिए तार के रूप में एक प्राथमिक कुंजी.

क्या आप कुछ लाभ? (अन्य का उपयोग की तुलना में अधिक भंडारण?)

दूसरे के साथ अपने प्रमुख के रूप में इस तरह ID001 क्या विचार करना चाहिए होता है, तो आप 1000 से अधिक पंक्तियाँ...

एक स्पष्टीकरण है कि आप के लिए देख रहे हैं कुछ उपयोगकर्ता पठनीय पहचान की पंक्ति । इस प्रदान किया जा सकता का उपयोग कर मानक की पहचान के अलावा एक अतिरिक्त आभासी स्तंभ

उदाहरण

create table MY_TABLE (
ID number(19,0) generated as identity, 
ID_DESC varchar2(255 char) generated always as ('ID'||ID) virtual,
col int,
primary key (ID))
;

insert into my_table(col)
select rownum from dual connect by level <= 3;


select id, id_desc from  my_table order by id;

        ID ID_DESC
---------- ---------        
         1 ID1                                                                                                                                                                                                                                                            
         2 ID2                                                                                                                                                                                                                                                            
         3 ID3 
2021-11-24 10:43:34

धन्यवाद MarmiteBomber. यह एक और अच्छा दृष्टिकोण है. दिए गए जवाब से @Littlefoot बताते हैं कि मैं क्या चाहता था. मैं बदल जाएगा टैग. भ्रम के लिए क्षमा करें.
TheEqualizer
0

यह संभव है, लेकिन आप इसके बारे में कुछ करने (यानी कुछ कोड लिखने - एक ट्रिगर). यहाँ एक उदाहरण है ।

नमूना तालिका; अपने आईडी कॉलम होना चाहिए ऑटो उत्पन्न:

SQL> create table test (id varchar2(10), name varchar2(10));

Table created.

एक अनुक्रम के साथ, में इस्तेमाल किया जाएगा जो एक ट्रिगर:

SQL> create sequence seq_test;

Sequence created.

ट्रिगर नहीं बल्कि साधारण है; यह concatenates ID अनुक्रम संख्या के साथ, छोड़ दिया-गद्देदार शून्य के साथ अप करने के लिए 3 अक्षर की लंबाई में (के रूप में अपने उदाहरण के लिए कहते हैं तो):

SQL> create or replace trigger trg_bi_test
  2    before insert on test
  3    for each row
  4  begin
  5    :new.id := 'ID' || lpad(seq_test.nextval, 3, '0');
  6  end;
  7  /

Trigger created.

परीक्षण:

SQL> insert into test (name) values ('Little');

1 row created.

SQL> insert into test (name)
  2    select 'Foot'      from dual union all
  3    select 'Equalizer' from dual;

2 rows created.

SQL> select * from test order by id;

ID         NAME
---------- ----------
ID001      Little
ID002      Foot
ID003      Equalizer

SQL>

P. S. तुम पोस्ट लिंक के लिए संबंधित नहीं है "पारंपरिक" Oracle डाटाबेस की जांच; उदाहरण के लिए तालिका बनाएँ प्रलेखन शामिल है, के बारे में जानकारी की पहचान स्तंभ हैं । अपने लिंक करने के लिए संबंधित है एनओएसक्यूएल डेटाबेस है ।

2021-11-24 08:02:17

इस में मदद करता है @Littlefoot. धन्यवाद । क्षमा करें, मैं गलत तरीके से आवंटित टैग :)
TheEqualizer

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में