Einzige Einschränkung:
immer wenn eine neue Nummer generiert, aber (weil ein Fehler auftritt) nicht beim INSERT verwendet wird, wird diese Nummer unbenutzt und es bleibt eine "Lücke". (Da Generatoren ihre Werte ausserhalb von Transaktionen erhalten, können diese nicht durch ein Rollback verhindert werden.)
Dann kopiert man das eben nicht manuell, sondern läst sich die Nummer in einem BeforeInsert-Trigger erzeugen und einfügen.
Da geht der Wert nur noch verloren, wenn es beim Insert knallt.
Es ist aber vom Programm unabhängig
und es gibt keine Probleme, wenn mehrere Connections parallel arbeiten und wenn es beim Insert etwas dauert. (deswegen sind Generatoren auch unabhängig von Transaktionen)