エラー理由1:主キーと外部キーの文字タイプが一致しない
最初に次のように2つのテーブルを作成してから実行します。2つのテーブルの作成に失敗したことがわかりました。確認後、主キーと外部キーの文字タイプが一致しないため、理由を分析します。1つのテーブルのIDはint型で、テーブル2のtidはchar(10 )タイプし、問題を解決するために一貫した文字タイプに変更されている限り。
作成したテーブルの主キーと外部キーの文字タイプが同じであることがわかった場合は、他の可能性を検討してください。続行してください。
create table one(
id int primary key,
oname VARCHAR(30)
);
create table two(
tid char(10),
tname VARCHAR(30),
constraint t_o_sk foreign key (tid) references one(id) on delete cascade on update cascade
##on delete cascade是级联删除,on update cascade 是级联更新
);
エラー理由2:プライマリテーブルのプライマリキーがプライマリキーではありません。プライマリキーである
場合、テーブルが再度作成されると、alterを使用して変更できます。
この問題が解決されていないことが判明した場合は、3番目のケースを以下で検討できます。
alter table one modify id int primary key;
エラー理由3:文字エンコーディングが一貫しているかどうかを確認します
エラー理由4:外部キーによって参照されている列が見つかりません。外部キーが
追加されたとき、すでにデータ(履歴データ、またはデータベーステーブルの更新時に設定されたデフォルト値)が存在する可能性がありますが、これらのデータは必ずしも外部キーに関連付けられているとは限りません。テーブルで対応する行を見つけます。この状況では、外部キーの作成も失敗します。