Александр Евгеньевич: onDelete="SET NULL" и cascade={"remove"} помогло, спасибо. Никодга не пользовался cascade={"remove"}. Всегда делал onDelete="CASCADE" с другой стороны.
Спасибо. Буду просто html предварять скриптом с обработчиком "error". Или обязательно в первый скрипт? И термин "инкапсуляция" здесь неуместен, на мой взгляд.
Да, пробовал. Все выборки, которые должны содержать запись с id>838 (LIMIT 900 OFFSET 40) начинаются с id=1; для остальных выборок (LIMIT 801 OFFSET 36, LIMIT 700 OFFSET 40) - начинаются с id=2694
Просто я считал, что MySQL должна сначала провести выборку по условию(WHERE), потом сортировать данные(ORDER), потом вырезать(OFFSET, LIMIT). На деле же видно, что это не так или результат сортировки ЗАВИСИТ от параметров LIMIT и OFFSET