2009-03-30 7 views
1

Я в процессе обмена над базой данных для перезаписи моей программы, и часть из них записывает сценарий преобразования и скрипт для создания новых таблиц.InnoDb работает некоторое время, но не другие

Я переименовываю таблицы, меняя индексы и, как правило, изменяя большую часть таблицы в некотором роде, часть этого заключается в том, что я меняю таблицы MyISAM на InnoDB.

Скрипт преобразования работает безупречно, но сценарий для создания новых таблиц падает в определенной точке.

Query: 
create table team_resources 
(
    amount double not null default 0, 
    resource int unsigned not null default 0, 
    team int unsigned not null default 0, 
    primary key (resource,team) 
) ENGINE = InnoDB 

Я получаю error 121 что выдаваемая ошибка, если таблица не может быть создана. Скрипт запускается из файла Python, но я получаю ту же ошибку как в моей программе SQL, так и в phpMyAdmin как в сыром сценарии, так и в вспомогательной форме мастера таблицы.

Таблицы, полностью конвертированные в InnoDB, просто прекрасны, поэтому я озадачен тем, почему у него проблемы с созданием новых. Этот запрос работает, если я выберу часть InnoDB.

Любые предложения?

ответ

1

Bug 26507 пролить немного света на это. Похоже, что создание/отбрасывание таблиц не совсем атомарно.

Один из вариантов - сделать mysqldump и попробовать загрузить в недавно установленную базу данных.

Другой способ справиться с этим описан в конце Bug 17546, но вы должны проверить, что проблемы связаны с файлом frm.

1

Я могу выполнить эту инструкцию на установке MySQL 5.0.32. Это может быть ошибка, которая исправлена.