MySQLエラー:テーブル「..」(エラー番号:150)ソリューションを作成できません



Mysql Error Cant Create Table



シーン

学生テーブルs(sno、sname、sage)、カリキュラムテーブルc(cno、cname)が含まれています

選択テーブル(sc)が作成されたら、(sno、cno)を主キーとして設定し、snoとcnoを外部キーとして設定します



drop table if exists sc1 create table sc1( sno varchar(10), cno varchar(10), grade numeric, primary key(sno,cno), foreign key(sno) references s(sno), foreign key(cno) references c(cno) )
エラーメッセージ:

画像

解決

1.scテーブルの外部キーフィールドのタイプとサイズがsテーブルcテーブルと完全に同じであるかどうかを確認します



2.参照しようとしている外部キーの1つにインデックスが付けられていないか、主キーではありません。それらの1つが主キーでない場合は、そのインデックスを作成する必要があります。

3. 1つまたは2つのテーブルはMyISAMエンジンのテーブルです。外部キー制約を使用する場合は、InnoDBエンジンである必要があります。

作成者のエラー状態は、cnoがcテーブルの主キーとして設定されていないことであり、設定することで解決されます。