반응형
몇 가지 외래 키를 설정했지만 phpMyAdmin을 사용하면 하나 더 만들 수 없습니다. 문제의 표는 다음과 같습니다.
Groups Table
id
name
address
Tasks Table
id
group_id
name
Tasks Table
의 group_id
에 외래 키가 필요하지만 생성하려고하면 다음 오류가 발생합니다. Missing index on column (s) 코드>.
group_id
에 고유 한 제한을 추가하면 외래 키를 만들 수 있지만 관계는 일대일
이되며 이는 예상 한 결과가 아닙니다.
다음은 테이블 생성 문입니다.
CREATE TABLE IF NOT EXISTS `groups` (
`id` int(11) NOT NULL,
`name` varchar(256) NOT NULL,
`address` varchar(256) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
ALTER TABLE `groups`
ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `id` (`id`), ADD UNIQUE KEY `id_2` (`id`);
CREATE TABLE IF NOT EXISTS `tasks` (
`id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
`name` varchar(256) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
ALTER TABLE `fixed_tasks`
ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `id` (`id`);
어떤 도움이나 안내도 대단히 감사합니다.
해결 방법
다음 코드는 상대 외래 키를 사용하여 두 개의 테이블을 만들 수 있습니다.
CREATE TABLE `Groups` (
`id` INT NOT NULL,
`name` VARCHAR(45) NULL,
`address` VARCHAR(45) NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `Tasks` (
`id` INT NOT NULL,
`group_id` INT NULL,
`name` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
CONSTRAINT `group_id`
FOREIGN KEY (`group_id`)
REFERENCES `Groups` (`id`)
);
참조 페이지 https://stackoverflow.com/questions/34768959
반응형
'MySql' 카테고리의 다른 글
MySQL Select 문의 PHP 변수 (0) | 2020.11.14 |
---|---|
MySQL 교리 2 DBAL과 서브 쿼리 결합 (0) | 2020.11.13 |
MySQL Docker 컨테이너에서 데이터 내보내기 (0) | 2020.11.13 |
MySQL 두 열의 차이를 얻는 방법 (0) | 2020.11.13 |
MySQL mongodb에서 mysql로 데이터를 마이그레이션하는 방법은 무엇입니까? (0) | 2020.11.13 |
댓글