# Two scripts in parallel: my $highest_id1 = $dbh->do("select max(id) from my_table"); # first script my $highest_id2 = $dbh->do("select max(id) from my_table"); # second script $highest_id1++; # first script $highest_id2++; # second script if ($highest_id1 == $highest_id2) { die }; #### create table my_table ( id integer primary key not null, .... ); -- or create unique index idx_id on my_table (id); -- or, in MySQL I think: create table my_table ( id integer not null auto_increment, .... );