照合が異なるため、以下は失敗します。なぜこれを表示するのですか? OPがしなかったからです。
その照合を使用したvarchar255のサイズ設定でエラー1071が発生したため、サイズを縮小してから、自動選択された文字セットを使用したことに注意してください。
重要なのは、照合が異なると機能しないということです。
CREATE TABLE `user_details` (
`ClientID` VARCHAR(100) NOT NULL,
PRIMARY KEY (`ClientID`)
)ENGINE=InnoDB;
CREATE TABLE `profilePic` (
`ClientID` VARCHAR(100) NOT NULL,
PRIMARY KEY (`ClientID`),
CONSTRAINT `FK__user_details` FOREIGN KEY (`ClientID`) REFERENCES `user_details` (`ClientID`) ON UPDATE CASCADE ON DELETE CASCADE
)COLLATE='utf8mb4_unicode_ci' ENGINE=InnoDB;
上記の失敗はテーブルレベルです。列レベルの照合の不一致が原因で1215エラーを引き起こすトリッキーなものは、
より一般的なケースに議論を引き上げる...
テーブルの作成時に外部キー制約を確立しようとしているか、 ALTER TABLE
など
ALTER TABLE `facility` ADD CONSTRAINT `fkZipcode`
FOREIGN KEY (`zipcode`) REFERENCES `allzips`(`zipcode`);
以下が適用されます。
FOREIGNKEYの使用というタイトルのMySQLマニュアルページから制約 :
さらに、参照 (親)テーブルには、高速ルックアップ(検証)に使用できる左端のキーが必要です。その親キーはPRIMARY
である必要はありません またはUNIQUE
。この概念は、以下の2番目のチャンクで説明されています。最初のチャンクはヘルパーをほのめかしています 参照で必要に応じて作成されるインデックス (子)必要に応じてテーブル。