If it's a low volume page as you have said, the chances of having an id collision are small anyway. You could always use a random number instead of a sequentially numbered id, that would reduce the chances of a collision enormously. Cheers, Tom P [Renaud Guérin]
I think I need to lock the table against reads, not inserts. What I must ensure is that no more select's max(id)+1 can be done before the subsequent insert is completed. I don't know how to use LOCK to do that, anyone ? You want LOCK TABLE table IN EXCLUSIVE MODE; most likely. A second lock statement will block until the first one clears.
damn, just read this: "A lock never prevents other users from querying the table. A query never places a lock on a table. Readers never block writers and writers never block readers. " (http://download-west.oracle.com/otndoc/oracle9i/901_doc/server.901/a90125/s tatements_915a.htm) So I guess that leaves me for good with only the sequence option, unless there's something we didn't think of...