create table natRules ( id integer primary key asc, description varchar(255), externalPort integer not null, unique(externalPort) ) #### 1|value1|3221 2|value2|78 3|value3|32 4|value4|1114 5|value5|5 6|value6|1 #### SELECT id FROM ( SELECT 1 AS id ) q1 WHERE NOT EXISTS ( SELECT 1 FROM unused WHERE id = 1 ) UNION ALL SELECT * FROM ( SELECT id + 1 FROM unused t WHERE NOT EXISTS ( SELECT 1 FROM unused ti WHERE ti.id = t.id + 1 ) ORDER BY id LIMIT 1 ) q2 ORDER BY id LIMIT 1