【发布时间】:2019-12-04 12:44:20
【问题描述】:
错误代码:1822。添加外键约束失败。引用表 'resident' 中缺少约束 'officials_ibfk_1' 的索引
我创建了一个超类表,其中包含两个相互关联的子类表。为什么会出现这个错误?我不能将外键分配给不是另一个表的主表吗?
CREATE TABLE User (
`userid` int NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL UNIQUE,
`password` varchar(30) NOT NULL,
`emailaddress` varchar(50) NOT NULL UNIQUE,
`lastname` varchar(20),
`firstname` varchar(20),
`birthday` date,
`sex` varchar(7) CHECK (sex IN ('Male', 'Female')),
`address` varchar(100),
`billingproof` varchar(100),
PRIMARY KEY (userid)
);
CREATE TABLE Resident (
`residentid` int NOT NULL,
`userid` int,
`groupid` int,
`accntstatus` VARCHAR(13) CHECK (accntstatus IN ('Approved', 'For Approval', 'Disapproved')),
`residenttype` VARCHAR(40) CHECK (residenttype IN ('Individual Resource', 'Service Provider', 'Individual Resource and Service Provider')),
`householdid` INT,
`elected` boolean,
FOREIGN KEY (userid) REFERENCES User(userid)
);
CREATE TABLE Officials (
`electedid` int NOT NULL,
`userid` int,
`position` varchar(15) CHECK (position IN ('Staff', 'Village Officer')),
`isSystemAdmin` boolean,
`startDate` date,
`endDate` date,
`residentid` int,
FOREIGN KEY (residentid) REFERENCES Resident(residentid),
FOREIGN KEY (userid) REFERENCES User(userid)
);
【问题讨论】:
-
由于您的问题是针对 mysql 的,您是否还可以添加标签
mysql?这将有助于未来的访问者。
标签: mysql sql database-schema