Я в настоящее время на MySQL 5.7.26, и я пытаюсь mysqlpump
, чтобы получить дампы моей базы данных. Я успешно использовал mysqldump
ранее.
Выполнение mysqlpump
и передача его на ведомый экземпляр приводит к следующей ошибке:
ОШИБКА 1215 (HY000) в строке 139: невозможно добавить ограничение внешнего ключа
Я обнаружил, что если я отключу параллелизм, то эта конкретная проблема исчезнет, но тогда я получу еще одну ошибку
ОШИБКА 1822 (HY000) в строке 141: не удалось добавить внешний ключ
constaint. Отсутствует индекс для ограничения 'fb_profile_ibfk_1' в
ссылочная таблица 'user'
Я должен также добавить, что сейчас я тестирую базу данных со всеми пустыми таблицами.
Проблемой, безусловно, может быть моя схема. Но эта база данных существует уже некоторое время, и mysqldump
работают нормально.
SQL для создания таблиц ниже. Первоначально таблица user
имела fb_id
, определенную как fb_id VARCHAR(20) UNIQUE KEY DEFAULT NULL
, но в приведенной ниже версии было показано, имеет ли значение разрешение NULL в одной таблице и значение, отличное от NULL, в другой.
Также обратите внимание, что это вызывает ошибку 1822. Мне нужно найти сокращенный набор таблиц, который генерирует 1215.
CREATE TABLE IF NOT EXISTS user (
user_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
fb_id VARCHAR(20) NOT NULL UNIQUE KEY
) AUTO_INCREMENT=1001;
CREATE TABLE IF NOT EXISTS fb_profile(
fb_id VARCHAR(20) NOT NULL PRIMARY KEY,
CONSTRAINT FOREIGN KEY (fb_id) REFERENCES user(fb_id)
)
и база данных была создана с этим
CREATE DATABASE IF NOT EXISTS db
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
Известны ли проблемы с mysqlpump
и внешними ключами?