0
你好,我有兩個MySQL表,其中一個持有用戶名和密碼,第二個持有用戶信息。下面是表:mysql外鍵
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?如果你有足夠的時間來解釋我的密鑰是如何工作的(使用mysql工作臺在圖上創建它們,然後進行正向工程)。感謝您的幫助
您必須先創建'userProfiles'表。 –
你是什麼意思,首先創建userProfiles表,然後用戶表?你是否想要:當我使用fk工具首先點擊userProfiles然後在用戶表上? – Bogdan
更改表格創建的順序:'userProfiles' **第一**,'用戶** **第二** – Bohemian