Sorry for the late reply, but thanks for your input, Jeff and Greg. Greg, the trigger percent_two works for each statement. Would it be possible to defer any check until the end of the transaction? For example, I may need to insert into hundred values(1,25), followed by (1,75), without the 25 immediately bombing. Also is this solution safe for concurrent DML? I recently read an Oracle solution to a similar problem in this blog entry's comments - http://tkyte.blogspot.com/2007/03/dreaded-others-then-null-strikes-again.html - and they said you need to lock before and after the validation. Thanks, Mark