Mai mult
Cum de a crea id-ul cu AUTO_INCREMENT pe Oracle?
Se pare că nu există nici un concept de AUTO_INCREMENT în Oracle, până la și inclusiv versiunea 11g.
Cum pot crea o coloană care se comportă ca auto increment în Oracle 11g?
387
16
Nu există nici un astfel de lucru ca "auto_increment" sau "identitatea" coloane în Oracle ca de Oracle 11g. Cu toate acestea, se pot modela cu ușurință cu o secvență și un declanșator:
Tabelul de definiție:
Declanșa definiție:
UPDATE:
"IDENTITATE" coloana este acum disponibil pe Oracle 12c:
sau specifica de pornire și creștere a valorilor, de asemenea, prevenind orice se introduce în coloană de identitate (
GENERAT ÎNTOTDEAUNA
) (din nou, Oracle 12c+ numai)Alternativ, Oracle 12, de asemenea, permite de a utiliza o secvență ca o valoare implicită:
SYS_GUID
returnează un GUID-un ID unic global. OSYS_GUID
este oPRIME(16)
. Ea nu generează o incrementare valoare numerică.Dacă doriți să creați un incrementarea numeric cheia,'ll doriți să creați o secvență.
Apoi, va trebui să fie utilizați secvența în "INSERT" declarație
Sau puteți defini un trigger care populează în mod automat valoarea cheii primare folosind secvența
Dacă utilizați Oracle 11.1 sau mai târziu, puteți simplifica declanșa un pic
Dacă într-adevăr doriți să utilizați
SYS_GUID
În Oracle 12c mai departe ai putea face ceva de genul,
Și în Oracle (Pre 12c).
Aici sunt trei arome:
"x" este o coloană de identitate. Substitut " FOO " cu nume de tabel în fiecare dintre exemple.
update:
Oracle 12c introduce aceste două variante pe care don't depinde de factori declansatori:
Primul folosește o secvență în mod tradițional; cel de-al doilea gestionează valoare pe plan intern.
Presupunând că vrei să spui o coloană ca SQL Server coloană de identitate?
În Oracle, puteți folosi o SECVENȚĂ pentru a obține aceeași funcționalitate. Am'll să văd dacă pot găsi un link bun și post-l aici.
Update: se pare ca ai gasit-o singur. Aici este link-ul, oricum: http://www.techonthenet.com/oracle/sequences.php
Oracle Database 12c introdus de Identitate, un auto-elementare (generat de sistem) coloană. În ultimele versiuni de baze de date (până 11g), de obicei pună în aplicare o Identitate prin a crea o Secvență și un Trăgaci. De la 12c mai departe, vă puteți crea propria dvs. Masă și să definească coloana care trebuie să fie generate ca o Identitate.
Următorul articol explică cum să-l folosească:
Identitate coloane - O nouă intrare în baza de Date Oracle 12c
Incepand cu Oracle 12c există suport pentru coloanele de Identitate, în unul din două moduri:
CREAȚI TABELUL MyTable (NUMĂRUL de IDENTIFICARE DEFAULT MyTable_Seq.NEXTVAL, ...)
CREAȚI TABELUL MyTable (NUMĂRUL de IDENTIFICARE GENERATE CA IDENTITATEA, ...)
Dacă utilizați mai întâi modul în care aceasta este compatibilă cu actualul mod de a face lucrurile. Cea de-a doua este un pic mai simplă și este mai în linie cu restul de RDMS sistemelor de acolo.
Trăgaci " și " Secvență poate fi utilizat atunci când doriți serializat numărul pe care oricine o poate citi cu ușurință/amintiți-vă/înțelege. Dar dacă nu't doresc să gestioneze ID-ul de Coloana (ca emp_id) de acest fel, și valoarea de această coloană nu este mult considerabile, puteți utiliza
SYS_GUID()` la Crearea de Masă pentru a obține Auto Increment de genul asta.Acum
emp_id
coloana va accepta "identificator global unic valoarea". puteți introduce o valoare în tabelul de ignorarea emp_id coloană de genul asta.Astfel, se va introduce o valoare unică ta
emp_id
Coloana.este numit de Identitate Coloane și este disponibil numai de la oracle Oracle 12c
exemplu de a introduce în Coloanele de Identitate` ca mai jos
NU se poate face introduce ca mai jos
link util
Aici este o soluție completă w.r.t excepție/eroare de manipulare pentru auto increment, această soluție este compatibil și va funcționa pe 11g & 12c, în special în cazul în care cererea este în producție.
Vă rugăm să înlocuiți 'TABLE_NAME' cu nume de tabel corespunzătoare
Acest lucru este cum am făcut asta pe un tabel existent și coloană (nume id-ul):
doar trebuie sa schimbi doar numele tabelului (AUDITLOGS) cu nume de tabel și noi.id-ul cu noi.column_name
oracle are secvențe de identitate ȘI coloane într-12c
http://www.oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1.php#identity-columns
Am gasit asta dar nu stiu sigur ce rdb 7 este http://www.oracle.com/technetwork/products/rdb/0307-identity-columns-128126.pdf
Poate doar să încercați acest script simplu:
http://www.hlavaj.sk/ai.php
Rezultatul este: