InnoDb работает иногда, а другие нет - PullRequest
1 голос
/ 31 марта 2009

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

Я переименовываю таблицы, меняю индексы и вообще каким-то образом изменяю большую часть таблицы, отчасти это то, что я меняю таблицы 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

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

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

Есть предложения?

Ответы [ 2 ]

1 голос
/ 31 марта 2009

Ошибка 26507 проливает свет на это. Похоже, создание / удаление таблиц не совсем атомарно.

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

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

1 голос
/ 31 марта 2009

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

...