Для задачи 1 вам нужно будет вручную установить значение AUTO_INCREMENT для этой таблицы после изменения всех идентификаторов, чтобы не было пробела при следующей вставке.Гораздо лучший способ - вообще не использовать идентификатор с автоматическим приращением - иметь столбец идентификаторов и использовать MAX (id) +1, чтобы найти требуемый идентификатор во время вставки записи.
вот мой псевдокод:
для удаления:
$n = 12;
DELETE from items where id='$n';
UPDATE items SET id=id-1 WHERE id > '$n'
для указанной вставки:
$n = 15;
(if there is a record with id = 15)
UPDATE items SET id=id+1 WHERE id >= '$n'
INSERT into items (id,..) values ('$n',...)
для неуказанной вставки
$n = SELECT MAX(id)+1 FROM items
INSERT into items (id,..) values ('$n',...)