2010-04-29 4 views
3

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

Однако я получаю это: #1025 - Error on rename of './yebutno_ybn/#sql-76dc_8581dc' to './yebutno_ybn/user' (errno: 150)

есть ограничения внешних ключей из-за связанные таблицы ....

какие-либо идеи? это избавит меня от хлопот с помощью php!

Спасибо, Стефан

+0

Просто быстрое предупреждение о том, что нужно учитывать, если вы об этом не подумали. Если вы делаете регистр с именем пользователя чувствительным, вы создаете возможность для кого-то подделать Stefan, создав пользователя под названием stefan. –

ответ

1

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

Знайте, что изменение сортировки может привести к сироту в несколько рядов. STEfan больше не будет связан с stefan ... поэтому вы можете изучить это, чтобы увидеть, есть ли у вас какие-либо события, и решить, что вы будете делать с ним, прежде чем продолжить.

+0

Он до сих пор не опубликован для публики, поэтому я останавливаю проблему перед вами. Я собираюсь сделать это, чтобы они могли войти только с использованием точного имени пользователя, так что все равно, когда данные хранятся в виде сеансов! Как временно удалить иностранный ключ? –

+0

ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol; – goat

1

Я думаю, что вы можете отключить ограничения внешнего ключа, используя что-то вроде:

SET FOREIGN_KEY_CHECKS = 0; 

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

Смежные вопросы