2014-12-25 72 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 FOREIGN KEY(scale)參考scaleid))

該表格變化

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包含缺少表scaleid值。

您可以檢查缺失值與下面的查詢:

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,這意味着您在變化表中具有縮放ID,但縮放表中沒有相同的ID。請在這裏閱讀外鍵:[create-table-foreign-keys](http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html)。 –