안녕하세요, 사용자 정보를 보유하는 두 번째 사용자 이름과 암호를 보유한 두 개의 mysql 테이블이 있습니다. 이 테이블mysql foreign keys
CREATE TABLE IF NOT EXISTS `test`.`dbo.users` (
`userId` INT(11) NOT NULL AUTO_INCREMENT ,
`userUsername` VARCHAR(45) NULL ,
`userPassword` VARCHAR(45) NULL ,
`dbo.userProfiles_userProfileId` INT(11) NOT NULL ,
PRIMARY KEY (`userId`, `dbo.userProfiles_userProfileId`) ,
INDEX `fk_dbo.users_dbo.userProfiles` (`dbo.userProfiles_userProfileId` ASC) ,
CONSTRAINT `fk_dbo.users_dbo.userProfiles`
FOREIGN KEY (`dbo.userProfiles_userProfileId`)
REFERENCES `test`.`dbo.userProfiles` (`userId`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `test`.`dbo.userProfiles` (
`userProfileId` INT(11) NOT NULL AUTO_INCREMENT ,
`userId` INT(11) NOT NULL ,
`userFirstName` VARCHAR(45) NULL ,
`userMidleName` VARCHAR(45) NULL ,
`userLastName` VARCHAR(45) NULL ,
`userBirthDate` VARCHAR(45) NULL ,
`userCountry` VARCHAR(45) NULL ,
`userState` VARCHAR(45) NULL ,
`userCity` VARCHAR(45) NULL ,
`userZipCode` VARCHAR(45) NULL ,
`userPrimaryAddress` VARCHAR(45) NULL ,
`userSecondaryAddress` VARCHAR(45) NULL ,
`userThirdAddress` VARCHAR(45) NULL ,
`userFirstPhone` VARCHAR(45) NULL ,
`userSecondaryPhone` VARCHAR(45) NULL ,
`userThirdPhone` VARCHAR(45) NULL ,
`userFirstEmail` VARCHAR(45) NULL ,
`userSecondaryEmail` VARCHAR(45) NULL ,
`userThirdEmail` VARCHAR(45) NULL ,
`userDescription` VARCHAR(45) NULL ,
PRIMARY KEY (`userProfileId`, `userId`))
ENGINE = InnoDB;
내 문제가 FK 키가 작동하지 않습니다 내가 (내가 외래 키를 많이 사용하지 않은 ... 내가 여기서 뭔가를 누락 이유는 확실하지 않다 : 여기에 테이블이 있습니다).
오류 :
Executing SQL script in server
ERROR: Error 1005: Can't create table 'test.dbo.users' (errno: 150)
이 그래서 난이 테이블과 다른 사람에 FK를 사용하여 고정 도와 주시겠습니까? 그리고 fk 키가 어떻게 작동 하는지를 설명 할 수있는 충분한 시간이 있다면 (mysql 워크 벤치를 사용하여 다이어그램에 생성 한 후 엔지니어를 사용하십시오). 도움을 주셔서 감사합니다.
먼저 'userProfiles' 테이블을 만들어야합니다. –
먼저 userProfiles 테이블을 만들고 나서 users 테이블을 만들면 무엇을 의미합니까? fff 도구를 사용할 때 먼저 userProfiles를 클릭 한 다음 users 테이블을 클릭하면됩니까? – Bogdan
테이블 생성 순서 변경 :'userProfiles' ** 처음 **,'사용자'** 두번째 ** – Bohemian