2014-12-25 2 views
-2
-- Constraints for table `variation` 
-- 
ALTER TABLE `variation` 
    ADD FOREIGN KEY (`parent`) REFERENCES `variation` (`id`), 
    ADD FOREIGN KEY (`scale`) REFERENCES `scale` (`id`), 
    ADD FOREIGN KEY (`user`) REFERENCES `users` (`user_id`); 

-- 

ошибкиошибка MySQL

ERROR 1452 (23000) в строке 277: Невозможно добавить или обновить дочернюю строку:. внешнего ключа не выполняется (getsy#sql-f44_2a, скованность #sql-f44_2a_ibfk_2 ЗАРУБЕЖНЫХ KEY (scale) СПИСОК ЛИТЕРАТУРЫ scale (id))

эту таблицу вариации

CREATE TABLE IF NOT EXISTS `variation` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT, 
    `parent` bigint(20) DEFAULT NULL, 
    `scale` bigint(20) DEFAULT NULL, 
    `value` varchar(255) NOT NULL, 
    `user` bigint(20) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `parent` (`parent`,`scale`,`value`,`user`), 
    KEY `scale` (`scale`), 
    KEY `user` (`user`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=101 ; 

помочь мне ..

благодаря

ответ

0

Похоже, что в variation таблице столбец scale содержит значения, которые отсутствуют в таблице scale колонке id.

Вы можете проверить пропущенные значения с помощью следующего запроса:

SELECT DISTINCT a.scale FROM 
    variation AS a LEFT JOIN scale AS b ON a.scale = b.id 
WHERE b.id IS NULL; 
+0

при попытке запроса показать результат 11 и это предупреждение Текущий выбор не содержит уникальный столбец. Редактирование сетки, флажок, редактирование, копирование и удаление недоступны. что я могу сделать? –

+0

Если вы получаете результат - 11, это означает, что у вас есть идентификатор шкалы в таблице вариантов, но у вас нет одинакового идентификатора в таблице шкалы. Подробнее о внешних ключах читайте здесь: [create-table-foreign-keys] (http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html). –

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