【发布时间】:2019-12-06 16:49:30
【问题描述】:
我尝试在表上添加外键,但每次尝试时总是出现此错误
ERROR 1822 (HY000): 添加外键约束失败。引用表“all_votes”中的约束“total_ibfk_1”缺少索引
正在创建的表就是这个(members是另一个与错误无关的表,所以不重视它)
CREATE TABLE IF NOT EXISTS all_votes (
id_vote INT AUTO_INCREMENT PRIMARY KEY,
id_member INT,
name_member VARCHAR(20),
vote VARCHAR(20) NOT NULL,
type_of_vote VARCHAR(10) NOT NULL,
topic VARCHAR(20) NOT NULL,
FOREIGN KEY (id_member) REFERENCES members(id)
);
这是发生错误的表
CREATE TABLE IF NOT EXISTS total (
topic VARCHAR(20) PRIMARY KEY,
type_of_vote VARCHAR(10) NOT NULL,
counts INT NOT NULL,
FOREIGN KEY (topic) REFERENCES all_votes(topic)
);
我已经阅读了大量答案,但似乎没有一个对我有用。 This answer 是最有启发性的,总结得越少。
我猜这个错误与外键对非主键的引用有关。问题是很多人都说有可能,但我没有找到一个代码示例,所以我可能在某个地方搞砸了。
【问题讨论】:
标签: mysql foreign-keys