MySQL errorno 121

quoteword оператор является одной из моих любимых вещей. Сравните:

my @list = ('abc', 'def', 'ghi', 'jkl');

и

my @list = qw(abc def ghi jkl);

Намного меньше шума, более симпатичного. Другая действительно хорошая вещь о Perl, что каждый действительно отсутствует при записи SQL, состоит в том, что запаздывающая запятая законна:

print 1, 2, 3, ;

, Который выглядит нечетным, но не, если Вы располагаете код с отступом иначе:

print
    results_of_foo(),
    results_of_xyzzy(),
    results_of_quux(),
    ;

Добавление дополнительного аргумента вызову функции не требует, чтобы Вы возились с запятыми на предыдущих или запаздывающих строках. Однострочное изменение не оказывает влияния на свои окружающие строки.

Это делает очень приятным работать с функциями variadic. Это - возможно, одна из наиболее недооцененных функций Perl.

37
задан T Zengerink 6 November 2012 в 11:08
поделиться

2 ответа

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

120
ответ дан 27 November 2019 в 04:05
поделиться

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

Вы также можете попробовать отключить проверки внешнего ключа перед созданием таблицы, например:

SET FOREIGN_KEY_CHECKS = 0;

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

Однако эта проблема также может возникнуть, если вы вручную перемещали файлы базы данных, например, физическое переименование каталога data / your_database_name . InnoDB не может соотносить физические изменения, подобные этому, с табличным пространством, поэтому он засоряется внутренними компонентами.

Если это то, что вы сделали, лучшим решением будет переместить вашу старую базу данных на место, где она была, сделайте дамп или экспортируйте его и выполните DROP DATABASE на нем перед повторным импортом.

7
ответ дан 27 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: