1030 – Got error -1 from storage engine
На одном из проектов я использую тип таблиц InnoDB. В этом проекте очень важно сохранять целостность данных. Поэтому я довольно активно использую внешние ключи для связи таблиц. И вот однажды я столкнулся с проблемой удаления записи (CASCADE), когда попытался удалить из таблицы (`group`), которая была связанна внешним ключем с таблицей (`subgroup`), которая в, свою очередь, была связана еще с одной таблицей (`item`).
Ошибка которую показал phpmyadmin:
Error
SQL query:
DELETE FROM `fancypets`.`groups` WHERE `groups`.`group_id` =1
MySQL said: Documentation
#1030 - Got error -1 from storage engine
Аналогичная ошибка при использовании консоли mysql:
mysql> delete from groups where `group_id`=4;
ERROR 1030 (HY000): Got error -1 from storage engine
Логи mysql сервера:
Cannot delete/update rows with cascading foreign key constraints that exceed max depth of 250
Решение: Если вы используете mysql-server-5.1.51, то вам повезло – вы узнаете причину уже в слудующий момент, в противном случае вы, наверное, действительно превысили лимит в глубину 250 .
Если коротко, то это баг версии mysql-server-5.1.51.
После того как я выполнил:
#portupgrade mysql-server
проблема исчезла.
Posted on Ноябрь 14th, 2011 by admin
Filed under: Development