根據我的理解,在閱讀相關的SO答案和官方文檔後,我可能會遇到列類型不匹配情況或缺少定義所需的INDEX情況。但是我無法解決我的問題。MySQL 5.0.11錯誤代碼#1215:無法添加外鍵約束
下面的表被成功創建下面
CREATE TABLE `parts` (
`partnum_rev` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'part number with revision number',
`status` char(4) COLLATE utf8_unicode_ci NOT NULL COMMENT 'part is live or dead',
`partdef` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'part definition',
`makebuy` varchar(4) COLLATE utf8_unicode_ci NOT NULL COMMENT 'part is maked or buyed',
PRIMARY KEY (`partnum_rev`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='table that part specific data is hold'
表給出MySQL - Error Code 1215, cannot add foreign key constraint
。
partnum_rev
是parts
表的主鍵,所以我不明白我的理由。
你能幫助我嗎?
問候
CREATE TABLE `bom` (
`lcn` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'logistics control number',
`status` char(4) COLLATE utf8_unicode_ci NOT NULL COMMENT 'part is live or dead',
`partnum_rev` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'part number with revision number',
`effective_date` date NOT NULL COMMENT 'drawing effective date',
`abolish_date` date DEFAULT NULL COMMENT 'drawing abolish date',
`parent_partnum_rev` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT 'parent part number with revision number',
`bomlevel` tinyint(3) unsigned NOT NULL COMMENT 'bom level',
`quantity` decimal NOT NULL COMMENT 'quantity',
`quantity_unit` char(2) COLLATE utf8_unicode_ci NOT NULL COMMENT 'quantity unit',
`usage_ratio` decimal DEFAULT NULL COMMENT 'usage ratio',
`mttr` decimal DEFAULT NULL COMMENT 'mean time to repair',
`purchasecost` decimal unsigned DEFAULT NULL COMMENT 'purchasing cost',
`moneyunit` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'purchasing cost monetary unit',
PRIMARY KEY (`lcn`),
FOREIGN KEY (`partnum_rev`) REFERENCES part(`partnum_rev`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='table for bill of material'