กำหนดที่ถูกสร้างตัวตนคอลัมน์ในสิทธิ์

0

คำถาม


ฉันอ่านเอกสารคู่มือสำหรับการแสดงตัวคอลัมน์ในสิทธิ์ที่กล่องแสดงรายละเอียดได้ที่นี่: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

มันเป็นไปได้แต่คุณจะต้องทำบางอย่างเกี่ยวกับมัน(i.e. เขียนรหัสบางอย่า-มีตัวกระตุ้น). นี่คือตัวอย่าง

ตัวอย่างโต๊ะ;ของมันระบุตัวคอลัมน์จะเป็นอัตโนมัติที่ถูกสร้าง:

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>

พีเอสเชื่อมโยงคุณโพสไม่ได้เกี่ยวข้องกับ"ดั้งเดิม"สิทธิ์ในฐานข้อมูลโปรดตรวจสอบ e.g. สร้างโต๊ะ เอกสารคู่มือ,มันมีข้อมูลเรื่องตัวตนคอลัมน์. คุณเชื่อมต่อเกี่ยวข้องกับ NoSQL กฐานข้อมูลเหมือนกัน

2021-11-24 08:02:17

มันจะช่วย@Littlefoot. ขอบคุณ ขอโทษฉัน wrongly จัดห้องป้ายกำกับ:)
TheEqualizer

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่