Задать вопрос
@Fuduin

MySQL InnoDB ошибка 1005 (errno: -1) при создании таблицы c CONSTRAINT?

Оригинальный запрос
CREATE TABLE IF NOT EXISTS ps_userproduct_customer_product (
id_customer int(10) UNSIGNED NOT NULL, 
id_product int(10) UNSIGNED NOT NULL, 
status enum('Vérification en cours', 'Modification demandée','En vente','Vendu','Confirmer la vente','Expédié chez Valco') DEFAULT 'Vérification en cours', 
fixed_fee_value float(10, 2) UNSIGNED NULL DEFAULT 0.0, 
variable_fee_value float(8, 4) UNSIGNED NULL DEFAULT 0.0, 
PRIMARY KEY (id_customer, id_product), 
CONSTRAINT FK_userproduct_customer_product_id_customer FOREIGN KEY(id_customer) REFERENCES ps_customer (id_customer) ON DELETE CASCADE ON UPDATE CASCADE, 
CONSTRAINT FK_userproduct_customer_product_id_product FOREIGN KEY(id_product) REFERENCES ps_product (id_product) ON DELETE CASCADE ON UPDATE CASCADE
) 
ENGINE = INNODB 
CHARACTER SET utf8 
COLLATE utf8_general_ci;


Описание проблемы:

На локальной машине все проходит идеально, но на сервере MySQL выдает ошибку: #1005 - Can't create table 'valco.ps_userproduct_customer_product' (errno: -1)

В ходе проверок выяснилось, что сервер отказывается создавать таблицу из-за имени (если изменить имя таблицы хоть на один символ все работает), а также из-за движка (если сменить на MyIsam все работает). Удалял все поля кроме одного и CONSTRAINT-ы не помогло.

Существующую похожую тему читал, пробовал включать и выключать innodb_file_per_table на локальной машине ничего не изменилось (все хорошо), на сервере прав на такие операции у меня нету.

В чем может быть проблема?
  • Вопрос задан
  • 2444 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
У Вас разные типы поля в одной таблице и в другой.
Покажите, как Вы создаёте Constraint и покажите show create table для обеих таблиц.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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