el problema de implementar NOT NULL es que se puede poner "" 
Haz dos tablas, una temporal y otra definitiva. Cuando alguien quiere ingresar le creas el registro en la tabla temporal y cuando termine lo mueves a la definitiva. Si quieres tener todo en una sola tabla hazle un flag (emjemplo: TerminoRegistro)
Luego limpias

Haz dos tablas, una temporal y otra definitiva. Cuando alguien quiere ingresar le creas el registro en la tabla temporal y cuando termine lo mueves a la definitiva. Si quieres tener todo en una sola tabla hazle un flag (emjemplo: TerminoRegistro)
Luego limpias
Código (sql) [Seleccionar]
DELTE FROM REGISTROS WHERE TerminoRegistro = 'NO'
cuando clickee el boton o URL link del formulario, que este tenga una funcion dentro que consulte el campo de la tabla en cuestion que contiene los numeros, y que verifique cual es el ultimo numero (esto lo puedes verificar con SELECT MAX(campo) FROM TABLA) y cuando te retorne, agregar ese valor a una variable y sumarle 1 a ese valor para que asi quede en el siguiente numero 
(tipico caso de un socket intentando conectar a unhost inexistente, esperar 30 segundos hasta que te diga "no se pudo conectar"
)