복합 기본 키를 사용하여 마스터 테이블을 만들었습니다. 다음과 같이복합 외래 키를 사용하여 테이블을 만드는 방법
부모 테이블 구조는 다음과 같습니다
CREATE TABLE `taskcategory` (
`SiteID` int(10) unsigned NOT NULL DEFAULT 1,
`TaskID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`TaskName` varchar(45) DEFAULT '',
`TaskDescription` varchar(45) DEFAULT '',
`IsInbuild` int(11) DEFAULT '1',
PRIMARY KEY (`TaskID`,`SiteID`)
);
내가 무엇입니까 위의 부모 테이블 참조하여 외래 키와 테이블을 만들려고하고 오류 '에는 150 테이블 오류를 만들 수 없다'. 내가 그 일을하도록 도와주세요.
자식 테이블 구조는 다음과 같이
CREATE TABLE taskdetails (`SiteID` int(10) unsigned NOT NULL DEFAULT '1',
`TaskID` int(10) unsigned NOT NULL DEFAULT '0',
`SubtaskID` int(10) unsigned NOT NULL,
`ScriptName` varchar(255) DEFAULT '',
`FunctionName` varchar(255) DEFAULT '',
`ButtonName` varchar(255) DEFAULT '',
`IsInbuild` int(10) unsigned DEFAULT '1',
`Description` varchar(255) DEFAULT '',
PRIMARY KEY (`SubtaskID`,`TaskID`,`SiteID`),
INDEX (siteid, taskid),
FOREIGN KEY (siteid, taskid)
REFERENCES taskcategory(siteid, taskid)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=INNODB;
도움이 내가 그것을 해결하기 위해.
AFAIK 외래 키인 경우 열에 대해 인덱스를 가질 필요가 없습니다. –
@niraj nawanit - 색인없이 시도했지만 동일한 오류가 발생했습니다. –