Mysql 1050 Ошибка «Таблица уже существует», хотя на самом деле это не так
Я получил эту же ошибку, и REPAIR TABLE (из ответа @ NullUserException) не помог.
В конце концов я нашел это решение :
Для меня без sudo я получил следующую ошибку:
(работает на OS X 10.6)
Вам может потребоваться очистить кеш таблицы. Например:
Я боролся с этим весь день: у меня есть Perl-скрипт, который создает набор таблиц, сначала выполнив DROP IF EXISTS . на них, а затем CREATE их. DROP успешно выполнено, но в CREATE I получено это сообщение об ошибке: table already exists
Я наконец-то дошел до сути: в новой версии MySQL, которую я использую, по умолчанию используется движок InnoDB («show engine \ G;»), я изменил его в файле my.cnf на значение по умолчанию MyISAM , перезапустил MySQL, и теперь я больше не получаю ошибку «таблица уже существует».
Столкнувшись с той же проблемой (создайте таблицу InnoDB), это то, что в итоге сработало для меня:
Я проверил на основе файлов, разрешения, попытался отремонтировать и очистить, но ничего не получилось.
Так что, если это опция, переместите все рабочие таблицы в другую базу данных, удалите старую (возможно, вам придется вручную удалить любые файлы из папки базы данных, прежде чем перевести на работу) , переименуйте новый, и вы «должны» вернуться на свой путь. По-видимому, все, что «кэшируется» с использованием InnoDB, удаляется вместе с исходной базой данных.
У меня была эта проблема на Win7 в Sql Maestro для MySql 12.3. Чрезвычайно раздражающий, выставочный ограничитель фактически. Ничего не помогало, даже не сбрасывая и не воссоздавая базу данных. У меня есть такая же настройка на XP, и она работает там, поэтому после прочтения ваших ответов о разрешениях я понял, что это должно быть связано с разрешениями Win7. Поэтому я запустил MySql от имени администратора, и хотя Sql Maestro работал нормально, ошибка исчезла. Так что, должно быть, проблема с правами доступа между Win7 и MySql.
Я также столкнулся с этой проблемой, когда пытался создать таблицу, которая сказала, что она уже существует, и, удалив таблицу, сказала, что она не существует.
Я сделал «FLUSH TABLES», и это решило проблему.
У меня возникла та же проблема при создании представления. Представление присутствовало ранее, тогда как из-за некоторых изменений оно было удалено, но когда я попытался добавить его снова, оно показало мне сообщение об ошибке «представление уже существует».
Решение :
Вы можете сделать одну вещь вручную.
- Перейдите в папку MySQL, где вы ее установили
- Перейдите в папку данных внутри нее.
- Выберите базу данных и войдите в нее.
- База данных создает файлы формата «.frm».
- удалите файл конкретной таблицы.
- Теперь снова создайте таблицу.
Он успешно создаст таблицу.
Сначала проверьте, находитесь ли вы в нужной базе данных USE yourDB , и попробуйте Select * from contenttype просто чтобы посмотреть что это такое и действительно ли оно существует .
У меня была такая же проблема в Mac OS X и MySQL 5.1.40. Я использовал eclipse для редактирования своего сценария SQL, а затем попробовал MySQLWorkbench 5.2.28. Вероятно, он преобразовал символы новой строки в формат Mac. Я понятия не имел, что не так с моим скриптом, пока не закомментировал первую строку в файле. После этого этот скрипт был интерпретирован mysql как единый комментарий. Я использовал встроенное приложение TextEdit Mac, чтобы исправить это. После перевода строк в правильный формат ошибка 1050 исчезла.
Обновление для пользователей Eclipse:
Чтобы установить окончание по умолчанию для новых созданных файлов во всем рабочем пространстве:
Окно -> Настройки -> Общее -> Рабочая область -> Новая строка текстового файла разделитель.
Чтобы преобразовать существующие файлы, откройте файл для редактирования и для текущего отредактированного файла перейдите в меню:
Файл -> Преобразовать разделители строк в
У меня был такой же случай. Проблема закончилась тем, что разрешения для родительского каталога.
Я копировал файлы в mysql и из него во время тестирования.
было недостаточно, нужно было:
Извините, что воскресил.
Я борюсь с той же проблемой. Я не могу создать таблицу, даже если она не существует. Я попробовал все вышеупомянутые решения безуспешно.
Моим решением было удалить файлы ib_logfil0 , ib_logfile1 , ibdata1 и auto.cnf из папки данных MySQL; перед удалением этих файлов обязательно остановите службу MySQL.
Затем после перезапуска службы MySQL воссоздал эти файлы, и я смог запустить скрипт резервного копирования, в котором были сохранены все мои CREATE (файл sqldump).
У меня была такая же проблема, и похоже, что имя базы данных чувствительно к регистру. Моя база данных называется:
Пока включен мой сценарий
Как только я изменил имя базы данных на правильный регистр, казалось, что все работает. Использование MYSQL Workbench на MAC OSX
Эта проблема также возникает, если в базе данных существует «представление» (воображаемая таблица) с тем же именем, что и имя нашей новой таблицы.
В моем случае я обнаружил, что это проблема с InnoDB; Я никогда не обнаруживал, в чём была настоящая проблема, но создание в качестве MyISAM позволило его построить
Ты мне не поверишь !! Я просто удалил блок комментариев из моего файла .sql, и теперь он работает .
Удаленный блок комментариев был следующим:
Я оставил проблемную таблицу в одном файле .sql. После этого я удалил комментарии, остался только код, и ошибка исчезла.
Для меня проблема была вызвана тем, что вместо mysqldump использовалась копия файловой системы каталога базы данных mysql. У меня есть несколько очень больших таблиц, в основном MyISAM и несколько таблиц кеша InnoDB, и mysqldump не практично использовать для данных. Поскольку мы все еще работаем с MyISAM, XtraBackup не вариант.
Со мной произошли те же симптомы, что и выше. Таблицы нет, в каталоге нет файлов, которые относятся к этой таблице, но ее нельзя создать, потому что MySQL считает, что она там. Drop table говорит, что это не там, создать таблицу говорит, что это так.
Проблема возникла на двух машинах, обе были исправлены путем копирования резервных копий. Однако я заметил, что в моей резервной копии были файлы .MYD и .MYI, хотя у меня сложилось впечатление, что эти файлы не используются для InnoDB. Файлы .MYD и .MYI имеют владельца root, а файл .frm принадлежит mysql.
Если вы копируете из резервной копии, проверьте права доступа к файлу. Сброс таблиц может работать, но я решил закрыть и перезапустить базу данных.
Черт возьми, у меня была такая же проблема с установочным скриптом osCommerce , пока я не выяснил, что в системе mysql есть много баз данных и create table запрос копирует себя в каждый и, таким образом, удаление только рабочей таблицы на активной базе данных не помогло, мне пришлось удалить таблицу со всех баз данных
Мой оператор CREATE был частью промежуточного дампа env.
Я попробовал все, что было упомянуто выше. Я не получил решение. Однако мой путь к искуплению был:
Я наткнулся на тот факт, что (один из многих в) оператор CREATE справился, когда я исправил чувствительность к регистру имени базы данных. Это что-то щелкнуло. Я повторил то же самое для других таблиц.
Однако появилась новая ошибка. Прямые кавычки для «комментариев» вызывали синтаксическую ошибку. Я был потрясен. заменил их, но новая ошибка начала появляться. Наконец-то я понял решение.
РЕШЕНИЕ. Дамп, который я использовал, мог быть из другой версии MySql. Я получил разрешение на подключение к промежуточному MYsql, используя локальный (установленный на моей машине) инструмент MySQL. Я не входил в промежуточный сервер для входа в рабочую среду mysql. Создал дамп оттуда. Побежал на свалку и все заработало как сладкое.
Пытался импортировать резервный файл sql, но получал ошибку; 1050 «Таблица уже существует»
Моя настройка была:
- Windows 7
- Mysql 5.5.16
- Изменен механизм сервера с InnoDB на MyISAM
- Использование phpMyAdmin. Удалил базу данных, которую я пытался импортировать в
- Перезапустил службу mysql
- Попробовал реимпорт, и это сработало
У меня были огромные проблемы с ошибками 1050 и 150.
Проблема для меня заключалась в том, что я пытался добавить ограничение с ON DELETE SET NULL в качестве одного из условий.
Изменение на ON DELETE NO ACTION позволило мне добавить необходимые ограничения FK.
К сожалению, сообщения об ошибках MySql совершенно бесполезны, поэтому мне пришлось искать это решение многократно и с помощью ответов на вопрос выше.
В моем случае проблема заключалась в том, что существовало представление с тем же именем, что и у моей таблицы, поэтому мне пришлось отбросить представление, чтобы разрешить импорт.
Автоматизированное решение, которое сработало для меня, состоит в том, чтобы заменить обычную отбрасываемую таблицу этим sed во время дампа, чтобы также отбросить любые возможные представления:
Или, если вы предпочитаете печатать в файл для резервного копирования
Или, если вы получили дамп-файл и импортируете его в свою базу данных
Примечание: важно, чтобы вы добавляли ^ в начале регулярного выражения замены, потому что есть другие типы DROP TABLE IF EXISTS команды в дампах, которые вы не хотите трогать.
Ошибка Mysql 1050 «Таблица уже существует», хотя на самом деле ее нет.
У меня такая же ошибка, и REPAIR TABLE (из ответа @ NullUserException) не помогла.
В конце концов я нашел это решение:
Для меня без sudo я получил следующую ошибку:
(Работает на OS X 10.6)
Возможно, вам потребуется очистить кеш таблицы. Например:
Я боролся с этим весь день: у меня есть сценарий Perl, который создает набор таблиц, сначала выполняя над ними DROP IF EXISTS . , а затем CREATE используя их. DROP успешно, но CREATE я получил это сообщение об ошибке: table already exists
Я наконец дошел до сути: новая версия MySQL, которую я использую, имеет движок по умолчанию InnoDB («show engine \ G;»). Я изменил его в файле my.cnf на MyISAM по умолчанию, повторно запустил MySQL, и теперь я больше не получаю ошибку «таблица уже существует».
Та же проблема возникла у меня при создании представления. Представление присутствовало раньше, тогда из-за некоторых изменений оно было удалено. Но когда я попытался добавить его снова, он показывал мне сообщение об ошибке «представление уже существует».
Решение :
Одно можно сделать вручную.
- Перейдите в папку MySQL, в которую вы его установили.
- Перейдите в папку с данными внутри него.
- Выберите свою базу данных и войдите в нее.
- База данных создает файлы формата «.frm».
- удалить файл конкретной таблицы.
- Теперь снова создайте таблицу.
Таблица будет успешно создана.
Столкнувшись с той же проблемой (создайте таблицу InnoDB), это то, что наконец сработало для меня:
Я проверил файловую основу, разрешения, попытался ВОССТАНОВИТЬ и ПРОМЫВИТЬ, но ничего не помогло.
Поэтому, если это вариант, переместите все рабочие таблицы в другую БАЗУ ДАННЫХ, удалите старую (возможно, вам придется вручную удалить все файлы из папки базы данных, прежде чем перетащить ее в работу) , переименуйте новую. , и вы должны вернуться на свой путь. Очевидно, все, что «кэшируется» с помощью InnoDB, удаляется вместе с исходной базой данных.
У меня была эта проблема на Win7 в Sql Maestro для MySql 12.3. Чрезвычайно раздражает, на самом деле препятствие для шоу. Ничего не помогло, даже сброс и воссоздание базы данных. У меня такая же установка на XP, и она там работает, поэтому, прочитав ваши ответы о разрешениях, я понял, что это должны быть разрешения Win7. Итак, я запустил MySql от имени администратора, и хотя Sql Maestro работал нормально, ошибка исчезла. Так что это, должно быть, проблема с разрешениями между Win7 и MySql.
Я также столкнулся с этой проблемой, когда при попытке создать таблицу говорилось, что она уже существует, а при удалении таблицы говорилось, что ее не существует.
Я сделал «ПРОМЫВИТЬ ТАБЛИЦЫ», и это устранило проблему.
Я борюсь с той же проблемой. Я не могу создать таблицу, даже если ее не существует. Я безуспешно пробовал все вышеперечисленные решения.
Мое решение состояло в том, чтобы удалить файлы ib_logfil0 , ib_logfile1 , ibdata1 и auto.cnf из папки данных MySQL; перед удалением этих файлов обязательно остановите службу MySQL.
Затем после перезапуска службы MySQL воссоздала эти файлы, и я смог запустить сценарий резервного копирования, в котором были сохранены все мои CREATE (файл sqldump).
Сначала проверьте, правильно ли вы находитесь в базе данных USE yourDB , и попробуйте Select * from contenttype просто посмотреть, что это такое и существует ли она на самом деле .
У меня была такая же проблема с Mac OS X и MySQL 5.1.40. Я использовал eclipse для редактирования своего SQL-скрипта, а затем попробовал MySQLWorkbench 5.2.28. Вероятно, он преобразовал символы новой строки в формат Mac. Я понятия не имел, что не так с моим скриптом, пока не закомментировал первую строку в файле. После этого этот сценарий был интерпретирован mysql как один-единственный комментарий. Я использовал встроенное приложение TextEdit для Mac, чтобы исправить это. После того, как разрывы строк были преобразованы в правильный формат, ошибка 1050 исчезла.
Обновление для пользователей Eclipse:
Чтобы настроить окончание по умолчанию для новых создаваемых файлов во всей рабочей области:
Окно -> Настройки -> Общие -> Рабочая область -> Новый разделитель строк текстового файла.
Чтобы преобразовать существующие файлы, откройте файл для редактирования и для текущего редактируемого файла перейдите в меню:
Файл -> Преобразовать разделители строк в
У меня был такой же случай. В конечном итоге проблема заключалась в разрешениях на родительский каталог.
Во время тестирования я копировал файлы в mysql и из него.
Было недостаточно, нужно было:
Извините, что воскресил.
У меня были огромные проблемы с ошибками 1050 и 150.
Для меня проблема заключалась в том, что я пытался добавить ограничение с ON DELETE SET NULL в качестве одного из условий.
Переход на ON DELETE NO ACTION позволил мне добавить необходимые ограничения FK.
К сожалению, сообщения об ошибках MySql совершенно бесполезны, поэтому мне пришлось искать это решение итеративно и с помощью ответов на вопрос выше.
Вы мне не поверите! Я только что удалил блок комментариев из моего файла .sql, и теперь он работает.
Блок удаленного комментария был следующим:
Я оставил проблемную таблицу в том же файле .sql. После этого я удалил комментарии, остался единственный код, и ошибка исчезла.
Эта проблема также возникает, если в базе данных существует «представление» (воображаемая таблица) с тем же именем, что и имя нашей новой таблицы.
В моем случае я обнаружил, что это проблема с InnoDB; Я так и не узнал, в чем была настоящая проблема, но создание MyISAM позволило ему создать
Для меня проблема была вызвана использованием копии файловой системы каталога базы данных mysql вместо mysqldump. У меня есть несколько очень больших таблиц, в основном MyISAM и несколько кеш-таблиц InnoDB, и использовать mysqldump для данных непрактично. Поскольку мы все еще используем MyISAM, XtraBackup не подходит.
Со мной случились те же симптомы, что и выше. Таблицы нет, в каталоге нет файлов, относящихся к таблице, но ее нельзя создать, потому что MySQL считает ее там. Drop table говорит, что его нет, create table говорит, что есть.
Проблема возникла на двух машинах, обе исправили копированием бэкапов. Однако я заметил, что в моей резервной копии были файлы .MYD и .MYI, хотя у меня сложилось впечатление, что эти файлы не используются для InnoDB. У файлов .MYD и .MYI был владелец root, а у файлов .frm — mysql.
Если вы копируете из резервной копии, проверьте права доступа к файлу. Таблицы сброса могут работать, но я решил выключить и перезапустить базу данных.
Черт возьми, у меня была та же проблема с установочным скриптом osCommerce , пока я не выяснил, что система mysql имеет много баз данных, и запрос create table копирует себя в каждую из них, и, таким образом, удаление только рабочей таблицы на активной базе данных не помогло , мне пришлось удалить таблицу из всех dbs
Мой оператор CREATE был частью промежуточного дампа env.
Я пробовал все, что было сказано выше. Я НЕ ПОЛУЧИЛ решения. Однако мой путь к искуплению был таким:
Я натыкаюсь на тот факт, что (один из многих) оператор CREATE прошел, когда я исправил чувствительность к регистру имени базы данных. Это что-то щелкнуло. Я повторил то же самое для других таблиц.
Однако возникла новая ошибка. Прямые кавычки для «комментариев» выдавали синтаксическую ошибку. Я был шокирован. заменил их, но начала выскакивать новая ошибка. Наконец я знал решение.
РЕШЕНИЕ. Дамп, который я использовал, мог быть из другой версии MySql. У меня есть разрешение на подключение к промежуточному MYsql с помощью локальной (установленной на моей машине) рабочей среды mysql. Я не выполнял rdp на промежуточном сервере, чтобы войти в промежуточную рабочую среду mysql. Создал оттуда дамп. Пробежал по свалке и заработало как конфетка.
Пытался импортировать файл резервной копии sql, но получал ошибку; 1050 «Таблица уже существует»
Mysql 1050 ошибка «таблица уже существует», когда на самом деле это не
серьезно, у вас, вероятно, сломанный стол. Попробуйте:
- DROP TABLE IF EXISTS contenttype
- REPAIR TABLE contenttype
- если у вас есть достаточные разрешения, удалите файлы данных (в /mysql/data/db_name)
из журнала MySQL:
я получил эту же ошибку, и таблица восстановления (из ответа @NullUserException) не помогла.
В конце концов я нашел данное решение:
для меня, без sudo , Я получил следующую ошибку:
(работает на OS X 10.6)
возможно, потребуется очистить кэш таблицы. Например:
я боролся с этим весь день: у меня есть скрипт на Perl, который создает набор таблиц, выполнив DROP IF EXISTS . и CREATE ing их. The DROP удалось, но на CREATE Я получил это сообщение об ошибке: table already exists
я, наконец, добрался до сути: новая версия MySQL, которую я использую, имеет движок по умолчанию InnoDB («show engine \G;»), я изменил его в my.cnf файл по умолчанию MyISAM, перезапустил MySQL, и теперь я больше не получаю » таблицу уже существует ошибка».
столкнувшись с той же проблемой (создайте таблицу InnoDB), это то, что наконец сработало для меня:
Я проверил на основе файла, разрешения, попытался восстановить и смыть, но ничего не получилось.
поэтому, если это опция, переместите все рабочие таблицы в другую базу данных, отбросьте старую (возможно, вам придется вручную удалить любые файлы из папки базы данных перед падением на работу) переименуйте новый, и вы должны быть на вашем пути. По-видимому, все, что «кэшируется» с помощью InnoDB, удаляется вместе с исходной базой данных.
У меня была эта проблема на Win7 в Sql Maestro для MySql 12.3. Ужасно раздражает, на самом деле, остановка шоу. Ничто не помогало, даже удаление и воссоздание базы данных. У меня такая же настройка на XP, и она работает там, поэтому после прочтения ваших ответов о разрешениях я понял, что это должны быть разрешения Win7. Поэтому я запустил MySql как администратор, и хотя Sql Maestro был запущен нормально, ошибка исчезла. Таким образом, это должно было быть проблемой разрешений между Win7 и Для MySQL.
Я также столкнулся с этой проблемой, когда при попытке создать таблицу сказал, что она уже существует и отбрасывая таблицу сказал, что она не существует.
Я сделал «флеш-таблицы», и это очистило проблему.
такая же проблема возникла со мной при создании представления. Представление присутствовало ранее из-за некоторых изменений, которые он удалил, но когда я попытался добавить его снова, он показывал мне сообщение об ошибке «view already exists».
решение:
вы можете сделать одну вещь вручную.
- перейдите в папку MySQL, где вы установили его
- перейдите в папку данных внутри него.
- выберите базу данных и зайдите внутрь он.
- базы данных создает «.frm » формат файлов.
- удалить файл конкретной таблицы.
- Теперь создайте таблицу снова.
Он успешно создаст таблицу.
сначала проверьте, находитесь ли вы в правильной базе данных USE yourDB и Select * from contenttype просто посмотреть, что это такое и существует ли оно на самом деле.
У меня была такая же проблема в Mac OS X и MySQL 5.1.40. Я использовал eclipse для редактирования моего SQL-скрипта, а затем попробовал MySQLWorkbench 5.2.28. Вероятно, он преобразовал символы новой строки в формат Mac. Я понятия не имел, что не так с моим сценарием, пока я не прокомментировал первую строку в файле. После этого этот скрипт был интерпретирован mysql как один единственный комментарий. Я использовал встроенное приложение TextEdit Mac, чтобы исправить это. После того, как разрывы строк были преобразованы в правильный формат, ошибка 1050 ушедший.
обновление для пользователей Eclipse:
чтобы настроить окончание по умолчанию для новых файлов, созданных во всей рабочей области:
у меня был такой же случай. Проблема закончилась тем, что разрешения на родительский каталог.
я копировал файлы в mysql и из mysql во время тестирования.
было недостаточно, нужно было:
извините за воскрешение.
Я борюсь с той же проблемой. Я не могу создать таблицу, даже если она не существует. Я пробовал все вышеперечисленные решения без успеха.
моим решением было удалить файлы ib_logfil0 , ib_logfile1 , ibdata1 и auto.cnf из папки данных MySQL; убедитесь, что сначала остановите службу MySQL перед удалением этих файлов.
затем после перезапуска службы MySQL воссоздал эти файлы, и я смог запустить сценарий резервного копирования, все мои CREATE s были хранится (файл sqldump).
у меня была такая же проблема, и похоже, что имя базы данных было чувствительным к регистру. Моя база данных называется:
в то время как мой скрипт входит
Как только я изменил имя базы данных на правильный случай, все это, казалось, работало. Использование MySQL Workbench на MAC OSX
эта проблема также возникает, если «представление» (воображаемая таблица) существует в базе данных с тем же именем, что и наше новое имя таблицы.
в моем случае я обнаружил, что это проблема с InnoDB; я никогда не обнаружил, в чем заключалась фактическая проблема, но создание как MyISAM позволило ему построить
вы не верите мне!! Ive просто удалите блок комментариев из моего .sql-файл и теперь все работает.
удаленный блок комментариев был такой:
Я оставил только проблемный стол в одном .sql-файл. После этого я удалил комментарии, остался только код, и ошибка пропадает.
для меня проблема была вызвана при использовании копии файловой системы каталога базы данных mysql вместо mysqldump. У меня есть очень большие таблицы, в основном MyISAM и несколько таблиц кэша InnoDB, и это не практично mysqldump данные. Поскольку мы все еще запускаем MyISAM, XtraBackup не является вариантом.
те же симптомы, что и выше произошло со мной. Таблицы нет, в каталоге нет файлов, относящихся к таблице, но она не может быть создана, потому что MySQL думает его там. Drop table говорит, что его нет, create table говорит, что он есть.
проблема возникла на двух машинах, обе были исправлены путем копирования резервных копий. Тем не менее, я заметил, что в моей резервной копии есть .MYD and .MYI файл, хотя я был под впечатлением, что эти файлы не используются для InnoDB. Этот.MYD and .Файлы MYI имели владельца root, в то время как.frm принадлежал mysql.
Если вы копируете из резервной копии, проверьте права доступа к файлам. Таблицы Flush могут работа, но я решил закрыть и перезапустить базу данных.
боже, у меня была такая же проблема с osCommerce установить скрипт, пока я не выяснил, что система mysql имеет много баз данных и create table запрос копирует себя в каждый и, таким образом, удаление только рабочей таблицы на активной БД не помогло, мне пришлось удалить таблицу из всех dbs
мой оператор CREATE был частью промежуточного дампа env.
Я попробовал все, что было сказано выше. Я не получил решения. Однако мой путь к искуплению был:
я натыкаюсь на тот факт, что (один из многих) оператор CREATE прошел, когда я исправил чувствительность к регистру имени базы данных. Что-то щелкнуло. Я повторил то же самое для других столов.
однако на сцену вышла новая ошибка. Прямые кавычки для «комментариев» бросали синтаксическую ошибку. Я был потрясен. заменил их, но новая ошибка начала появляться. Наконец-то я нашел решение.
решение: дамп, который я использовал, мог быть из другой версии MySql. Я получил разрешение подключиться к промежуточному MYsql, используя локальный (установленный на моей машине) MySQL workbench. Я не rdp в промежуточный сервер для входа в промежуточный MySQL workbench. Создал дамп оттуда. Побежал на свалку и это сработало как конфета.
пытался импортировать резервный файл sql, но получал ошибку; 1050 «таблица уже существует»
моя установка была такой:
- Windows 7
- Mysql 5.5.16
- изменен движок сервера с InnoDB на MyISAM
- используя phpMyAdmin удалил базу данных, которую я пытался импортировать в
- перезапустил службу mysql
- попробовал реимпорт и он работал
у меня были огромные проблемы с ошибкой 1050 и 150.
проблема для меня заключалась в том, что я пытался добавить ограничение с ON DELETE SET NULL как одно из условий.
изменение ON DELETE NO ACTION позволил мне добавить необходимые ограничения FK.
к сожалению, сообщения об ошибках MySql совершенно бесполезны, поэтому мне пришлось найти это решение итеративно и с помощью ответов на вопрос выше.
в моем случае проблема заключалась в том, что было представление с тем же именем, что и моя таблица, поэтому мне пришлось удалить представление, чтобы позволить импорту продолжаться.
автоматическое решение, которое сработало для меня, — заменить обычную таблицу drop на этот sed во время дампа, чтобы также удалить любые представления, которые могут существовать:
или если вы предпочитаете печатать в файл для резервного копирования
или если вы получили сбросил файл и импортируете его в свой db
Примечание: важно, чтобы вы добавить ^ в начале регулярного выражения замены, потому что есть другие типы DROP TABLE IF EXISTS команды в дампах, которые вы не хотите трогать.