Autoincrement
Autoincrement ist eine Hilfsfunktion die mittlerweile in die meisten Datenbanken einzug gehalten hat. Dabei kann je nach Datenbanksystem eine vorhandene Funktion der Datenbank benutzt werden oder es muss selbst etwas gebaut werden.
MySQL
[Bearbeiten | Quelltext bearbeiten]Unter MySQL gibt es das Attribut AUTO_INCREMENT, dies kann für eine Primary Key-Spalte gesetzt werden.
PostgreSQL
[Bearbeiten | Quelltext bearbeiten]Bei PostgreSQL gibt es dafür die Datentypen SERIAL und BIGSERIAL. Außerdem kann die gleiche Lösung wie bei Oracle genommen werden.
Oracle
[Bearbeiten | Quelltext bearbeiten]Da es bei Orcale kein Auto Increment wie bei MySQL oder einen extra Datentyp wie bei PostgreSQL (SERIAL), muss hier ein Umweg über Sequenzen gegangen werden.
Erst wird eine Sequenz erzeugt
CREATE SEQUENCE testtable_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE NOCACHE;
Anschließend wird diese mit einem Trigger auf die Tabelle gelegt. Dieser erzeugt bei jedem Einfügen den nächsten Zahlenwert.
CREATE OR REPLACE TRIGGER testtable_inc_trigger
BEFORE INSERT ON testtable FOR EACH ROW
BEGIN
SELECT testtable_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
MSSQL
[Bearbeiten | Quelltext bearbeiten]Unter MSSQL gibt es wie bei MySQL ein Attribut für Autoincrement, nur heißt es hier IDENTITY.
