Unter Oracle Datenbanken sind für eine Tabelle mit automatisch inkrementiertem Primärschlüssel die Tabelle selbst, eine Sequenz und ein Trigger anzulegen.
CREATE TABLE foo (
my_key number,
bar nchar(255),
PRIMARY KEY (my_key));
CREATE sequence foo_seq
start WITH 1
increment BY 1
nomaxvalue;
CREATE TRIGGER foo_trigger
before INSERT ON foo
FOR each row
begin
SELECT foo_seq.NEXTVAL INTO :new.my_key FROM dual;
end;
/Bei einer MySQL Datenbank reicht hierzu das Schlüsselwort auto_increment in der Tabellen-Definition aus.
CREATE TABLE foo (
my_key int AUTO_INCREMENT,
bar varchar(255),
PRIMARY KEY(my_key));Welches der beiden Beispiele lässt sich schneller schreiben bzw. lesen? ;-)



Und was machst Du, wenn Du Deine ID’s einschränken möchtest. Z.B. 500 – 10000? Das hat bei Oracle schon seinen Sinn.