Dies würde bedeuten, ..
dann wird automatisch die NULL überschrieben ? Mit was denn ?
Der Trigger ist so geschrieben, dass er nur selbst einen Wert vergibt, wenn das Feld noch NULL ist. Das ist eine Möglichkeit, Trigger zu schreiben, nicht unüblich.
Woher Wert kommt, ist dem Trigger egal. Alles was Werte schreiben kann, kann genutzt werden das Feld zu beschreiben und damit den Triggerwert zu vermeiden.
Wenn man den Trigger verwendet, benötigt man kein anderes Verfahren.
Wenn man ein anderes oder verschiedene Verfahren verwendet, selbst
SQL console, stellt der Trigger einen eindeutigen Wert sicher.
"Wie man die richtige ID findet?" Damit meinst Du den ID Wert, der gesetzt wurde?
Das geht auch unter Firebird glaube ich mit Returning Clause, die liefert nach dem Insert den Wert (oder auch andere zurück). Das muss natürlich vom Provider unterstützt werden. Weiß ich bei Firedac nicht.