こんにちは私は、ユーザ情報を保持するユーザ名とパスワードを保持する2つの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キーが動作しないと私はなぜ私はここで何かが欠けてるかわからないということです...(私は多くの外部キーを使用していません)。
エラー:私は、この表や他人にFKを使用できるように
Executing SQL script in server
ERROR: Error 1005: Can't create table 'test.dbo.users' (errno: 150)
これを固定助けてくださいことはできますか? fkキーがどのように正確に機能するかを私に説明する余裕があれば(mysql workbenchを使ってダイアグラム上に作成してフォワードエンジニアを使って)
最初に 'userProfiles'テーブルを作成する必要があります。 –
最初にuserProfilesテーブルを作成してからusersテーブルを作成することはどういう意味ですか?あなたは私がfkツールを使用して初めてuserProfilesをクリックしてからusersテーブルを使用するのですか? – Bogdan
テーブルの作成順序を変更する: 'userProfiles' **最初の**、'ユーザー '** 2番目の** – Bohemian