Я намагаюся створити 2 таблиці в MySQL з наведеним нижче сценарієм, але другий запит не вдається:
Код помилки: 1215. Неможливо додати обмеження зовнішнього ключа.
Це тому, що я пов'язую 2 колонки в emergency_contact_tbl з одним стовпцем в userinfo стіл?
Як ще я можу створити ці відносини в базі даних?
CREATE TABLE IF NOT EXISTS `userinfo` (
`userid` INT,
`name` VARCHAR(45),
PRIMARY KEY (`userid`) )
CREATE TABLE IF NOT EXISTS `emergency_contact_tbl` (
`userid` INT NOT NULL ,
`emergency_contact_personid` INT NOT NULL ,
INDEX `emergency_contact_tbl_idx` (`userid` ASC, `emergency_contact_personid` ASC) ,
CONSTRAINT `emergency_contact_tbl_cons`
FOREIGN KEY (`userid` , `emergency_contact_personid` )
REFERENCES `userinfo` (`userid` , `userid` )
ON DELETE CASCADE
ON UPDATE CASCADE)
Відповіді:
3 для відповіді № 1Ви не можете використовувати двічі в тій же стовпці в REFERENCES
пост.
Що потрібно робити, це:
CREATE TABLE IF NOT EXISTS `emergency_contact_tbl` (
`userid` INT NOT NULL ,
`emergency_contact_personid` INT NOT NULL ,
INDEX `emergency_contact_tbl_idx` (`userid` ASC, `emergency_contact_personid` ASC) ,
CONSTRAINT `emergency_contact_tbl_cons1`
FOREIGN KEY (`userid` )
REFERENCES `userinfo` (`userid` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `emergency_contact_tbl_cons2`
FOREIGN KEY (`emergency_contact_personid` )
REFERENCES `userinfo` (`userid` )
ON DELETE CASCADE
ON UPDATE CASCADE)