Tabelle mit Identity Column im Oracle Data Modeler erstellen
Ich zeige euch in diesem Post wie ihr mit dem Oracle Data Modeler 4.1.2 eine Tabelle mit einer Identity Column erstellen könnt. Im das Feature nutzen zu können, benötigst du die Oracle Datenbankversion 12c und den Oracle Data Modeler 4.1.2.
Was ist eine Identity Column?
Einfach ausgedrückt – es handelt sich bei Identity Columns um eine AutoIncrement Spalte. Die MySQL Datenbank z.B. besitzt diesen „Datentypen“ schon sehr lange. Pro Tabelle darf es aktuell nur eine Identity Column geben.
Beispiel Syntax IDENTITY
Ich möchte in diesem Post nicht so tief auf die Syntax eingehen. Im folgenden sind sehr gute Posts aufgelistet die sich speziell mit diesem Thema beschäftigen.
1 2 3 4 5 6 |
CREATE TABLE TAB1 ( ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 CYCLE NOCACHE ORDER ) NOT NULL , BESCHREIBUNG VARCHAR2 (200) ) |
Hier ein paar weiterführende Links zum Thema Identity Columns:
- https://oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1
- https://oracle-base.com/articles/misc/autonumber-and-identity
- https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#CJAHJHJC
Identity Column im Oracle Data Modeler erstellen
In dieser Step by Step Anleitung erkläre ich ganz kurz wie ihr die Identity Column bei der DDL-Generierung erstellen könnt.
Tabelle im relationalen Modell erstellen
Detailansicht der ID Column
Automatische Inkrementierung auf ALWAYS setzen
Identity Column festlegen
In das physikalische Modell wechseln – darauf achten, das es sich um ein Modell einer Oracle DB Version 12c handelt.
DDL-Generierung
Zusatzinfos
Jeff Smith hat in dem folgenden Post noch einen anderen Weg aufgezeigt, welchen ich aber mit dem Oracle SQL DataModeler 4.1.2 nicht mehr nachvollziehen kann. Der Post ist auch schon etwas älter – aber lesenswert.
Trigger – Nein Danke
In der Praxis sehe ich sehr häufig, dass ein Trigger angelegt, beim Insert eines Datensatzes in eine Tabelle eine Sequence hochgezählt und dann die entsprechende Column mit dem Sequencewert befüllt wird – durch die Identity Column wird von der Oracle DB eine Sequence generiert und die Column automatisch befüllt – ganz wichtig alles ohne Triggertechnik! Ich persönlich bin kein Freund von Triggertechniken und daher gibt es jetzt wirklich keinen Grund mehr diese einzusetzen.
Eine Redewendung welchen ich immer mit Trigger in Verbindung bringe – ROW BY ROW, SLOW BY SLOW. Sind Trigger auf einer Tabelle angelegt, sind keine BULK Operationen mehr möglich – Einzeldatensatzverarbeitung ist angesagt :-(
SCHREIBEN SIE EINEN KOMMENTAR