[解決済み] エラーコードです。1215. 外部キー制約を追加できません (外部キー)
2022-02-08 14:13:02
質問
CREATE DATABASE my_db;
CREATE TABLE class (
classID int NOT NULL AUTO_INCREMENT,
nameClass varchar(255),
classLeader varchar(255),
FOREIGN KEY (classLeader) REFERENCES student(studentID),
PRIMARY KEY (classID));
CREATE TABLE student (
studentID int NOT NULL AUTO_INCREMENT,
lastName varchar(255),
firstName varchar(255),
classID int,
FOREIGN KEY (classID) REFERENCES class(classID),
PRIMARY KEY (studentID));
テーブル間のデータの整合性を外部キーで確保し、DBMSがエラーをチェックできるようにしようとしているのですが、なぜかそれができないようです。何がエラーなのか、また代替案はあるのでしょうか?また、外部キーを持つテーブルを埋める場合、外部キー用に確保されたフィールドは埋められませんよね?また、外部キーは全くキーとみなされないのでしょうか?
どのように解決するのですか?
最も可能性の高い問題は、この行です。
FOREIGN KEY (classLeader) REFERENCES student(studentID),
classLeaderのデータ型はVARCHAR(255)です。これは
というデータ型に一致します。
参照されるカラムの...
student.studentID
. そしてもちろん
student
テーブルが存在しなければならず
studentID
カラムが存在し、かつ
studentID
カラムは student テーブルの PRIMARY KEY である必要があります (MySQL では PRIMARY KEY ではなく UNIQUE KEY にすることも、単にインデックスを持つことも可能だと思います)。
いずれにせよ、ここで足りないのは、出力された
SHOW CREATE TABLE student;
データ型の不一致があります。
は
classLeader VARCHAR(255)
カラムの外部キー参照にすることはできません。
studentID INT
.
2つの列のデータ型は一致しなければならない。
関連
-
[解決済み】1052:フィールドリストの列「id」が曖昧である
-
[解決済み】mysql 外部キー制約が不正に形成されているエラー
-
[解決済み】MySQLエラー1264:カラムの範囲外の値
-
[解決済み] SQLキー、MUL vs PRI vs UNI
-
[解決済み] 各単語の最初の文字を大文字にする(既存のテーブルの場合
-
[解決済み] Mysql: const テーブルを読み込んだ後、不可能な場所に気づいた。
-
[解決済み] エラー 2005 (hy000)。Google Cloud SQL クライアントの MySQL サーバーホスト '[35.232.51.216]' (0) が不明です。
-
[解決済み] MySQLで外部キー制約を一時的に無効にするにはどうすればよいですか?
-
[解決済み] MySQL エラー 1215。外部キー制約を追加できません
-
[解決済み】MySQLで外部キー制約を追加できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MySQL: グループ関数の無効な使用
-
[解決済み】mysql 外部キー制約が不正に形成されているエラー
-
[解決済み] 親の行を削除または更新できない: 外部キー制約に失敗 - MYSQL
-
[解決済み】MySQL 派生テーブルはすべて独自のエイリアスを持つ必要があります。
-
[解決済み] MYSQLのTIMESTAMP比較
-
[解決済み] MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175が発生する
-
[解決済み] SQL エラー - テーブルの定義が正しくありません; auto カラムは 1 つしか存在できません。
-
[解決済み] エラーコードです。1215. 外部キー制約を追加できません (外部キー)
-
[解決済み] エラー1022 - 書き込みできません; テーブルに重複したキーがあります。
-
[解決済み] MySQLの グループ関数の無効な使用