Есть ли способ средствами MySQL проверить нумерацию строк - MySQL

Формулировка задачи:

Имеется таблица с последовательными номерами без проскоков (1,2,3,....n) Кол-во строк в таблице должно быть равно максимальному номеру. Проблема в том, что кладовщик заносит эти номера пальцами и может их менять напр. товар№1 - 1 товар№2 - 3 товар№3 - 2 на товар№1 - 3 товар№2 - 1 товар№3 - 2 Я сделал цикл в php while ($row = $result->fetch()) и SELECT nnn, item FROM items ORDER by nnn и просто проверяю последовательность. Потом SELECT count(0) cnt FROM items и сравниваю макс.номер и кол-во. Таблица уже около 100тыс, до 30 секунд на проверку. Есть ли способ проверки выполнить только средствами MySQL и будет ли выигрыш по времени или не стоит возиться? Заранее спасибо!

Код к задаче: «Есть ли способ средствами MySQL проверить нумерацию строк - MySQL»

textual
SELECT items.nnn + 1 
FROM
  items 
  LEFT JOIN items AS n ON items.nnn + 1 =  n.nnn
WHERE
  n.nnn IS NULL AND items.nnn < (SELECT  MAX(nnn) FROM items)

7   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ