根据我阅读相关SO答案和官方文档后的理解,我可能会遇到列类型不匹配的情况或没有定义所需的INDEX情况。但是我无法解决我的案子。
下表创建成功
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 - 错误代码 1215,无法添加外键约束
。
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'
最佳答案
foreign key
子句是错误的 - 您的表称为 parts
(复数!),而不是 part
。只需使用正确的表名:
FOREIGN KEY (`partnum_rev`) REFERENCES parts(`partnum_rev`) ON UPDATE CASCADE
关于MySQL 5.0.11 错误代码 #1215 : cannot add foreign key constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001186/