Miten luoda id AUTO_INCREMENT Oraclessa?
Näyttää siltä, että Oraclessa ei ole AUTO_INCREMENT-käsitettä versioon 11g asti.
Miten voin luoda sarakkeen, joka käyttäytyy kuin automaattinen lisäys Oracle 11g:ssä?
387
3
Oraclessa Oraclessa 11g ei ole olemassa "automaattista lisäystä" tai "identiteettisarakkeita" sarakkeita. Voit kuitenkin mallintaa sen helposti sekvenssin ja triggerin avulla:
Taulukon määritelmä:
Laukaisimen määritelmä:
UPDATE:
IDENTITY
sarake on nyt saatavilla Oracle 12c:ssä:tai määrittää alku- ja lisäysarvot, jolloin estetään myös kaikki lisäykset identiteettisarakkeeseen (
GENERATED ALWAYS
) (jälleen vain Oracle 12c+).Vaihtoehtoisesti Oracle 12:ssa voidaan myös käyttää sekvenssiä oletusarvona:
Tässä on kolme makua:
RAW
-tietotyyppinä.x
on identiteettisarake. KorvaaFOO
taulukkosi nimellä kussakin esimerkissä.update:
Oracle 12c esittelee nämä kaksi vaihtoehtoa, jotka eivät ole riippuvaisia laukaisimista:
Ensimmäinen käyttää sekvenssiä perinteisellä tavalla; toinen hallinnoi arvoa sisäisesti.
Tarkoitatko oletettavasti SQL Serverin identiteettisarakkeen kaltaista saraketta?
Oraclessa käytetään SEQUENCE-saraketta saman toiminnallisuuden saavuttamiseksi. Katson, löydänkö hyvän linkin ja lähetän sen tänne.
Päivitys: näyttää siltä, että löysit sen itse. Tässä on kuitenkin linkki: http://www.techonthenet.com/oracle/sequences.php