If you need secuential numbers and cannot afford either gaps or locking and generating numbers with a pl/sql function, you can always run a process on the affected tables and re-set the sequenced value in order to avoid gaps. An alternative to sequences, when you cannot afford gaps is using custom pl/sql functions and perhaps even Oracle Queues. This would cause a serious serialization of operations though. Guillermo Alan Bort EDS - ITO DBA Main Group -- //www.freelists.org/webpage/oracle-l