Autoincrement
Aus Byte-Welt Wiki
Version vom 11. März 2008, 20:19 Uhr von EagleEye (Diskussion | Beiträge)
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 <code=sql>CREATE SEQUENCE testtable_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE NOCACHE;</code=sql>
Anschließend wird diese mit einem Trigger auf die Tabelle gelegt. Dieser erzeugt bei jedem Einfügen den nächsten Zahlenwert. <code=sql>
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;
</code=sql>