2015-10-10 5 views
0

У меня есть две разные таблицы следующим образомAlter таблица броска ошибка # 1005

apis 
users 

Здесь users таблица имеет api_id как forien ключ.

Теперь я, выполнив следующий запрос, но он проблева ошибку (о том, что api_id столбец ссылается на id колонку на apis столе.)

alter table `users` add constraint users_api_id_foreign foreign key (`api_id`) references `apis` (`id`) on delete cascade on update cascade 

Ошибка: #1005 - Can't create table 'xxxxx.#sql-54ef_229ff39' (errno: 150) (<a href="server_engines.php?engine=InnoDB&amp;page=Status&amp;token=50174b3c687a6edcb259e10dd65ca6d7">Details...</a>)

MySQL версия (сервер разработки)

Server version: 5.5.42-37.1-log 

тот же запрос работает в моем локальном хосте

Server version: 5.5.44-0ubuntu0.14.04.1 - (Ubuntu) 

Как я могу исправить эту ошибку? Заранее спасибо.

Apis Таблица

enter image description here

Пользователи Таблица

enter image description here

+0

Есть ли api_id в таблице пользователей? если да, имеют ли они один и тот же тип данных? –

+0

обрезать обе таблицы, а затем добавить внешний ключ. –

ответ

1

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

+0

да, в основном Laravel сначала создает схему, затем выполняет сеялку для вставки данных. – Asik

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