Du kannst einen Generator nutzen:
Dazu benötigst Du eine weitere Tabelle in der Form:
SQL-Code:
create Table LastID
(
GeneratorID Integer not null,
DeineID Integer not null -- oder welcher Type das auch immer sein mag.
);
Dazu einen Generator:
CREATE GENERATOR GEN_LastID;
Und noch einen Trigger:
SQL-Code:
CREATE TRIGGER TR_LastID_BIU FOR LastID ACTIVE
BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
if ((NEW.GeneratorID is NULL)) then NEW.GeneratorID = Gen_ID(GEN_LastID, 1);
END^
Wenn Du eine neue ID erstellt hast, schreibst Du diese per Insert
insert into LastID (DeineID) values (DerWertDerID);
in diese Tabelle.
Willst Du nun die letzte Deiner IDs ermitteln, bekommst Du die per
select first 1 DeineID from LastID order by GeneratorID desc;
Eventuell noch 'nen absteigenden Index auf die GeneratorID und regelmäßig nicht mehr benötigte Sätze aus der Tabelle LastID entfernen. Dazu könntest Du der Tabelle LastID ggfls. noch 'ne TimeStamp-Spalte gönnen und im Trigger diese mit CURRENT_TIMESTAMP befüllen, dann wird das Entfernen alter Sätze einfacher und Du kannst sogar nachvollziehen, in welcher Reihenfolge Deine IDs erstellt wurden.
Wäre das eventuell 'nen Versuch wert?