2017-03-01 6 views
1

Member.idを参照する外部キーEnrols.midを追加したかったのですが、インデックスの追加、キーの作成、グーグル作成の試行の後でもまだ動作していません。 2つの列のデータ型がまったく同じですが、外部キーを追加しても機能しないのはなぜですか?同じデータ型にもかかわらず "外部キー制約が正しくありません"

MariaDB [alumni]> alter table Enrols add foreign key (`mid`) references Member.id; 
ERROR 1005 (HY000): Can't create table `alumni`.`#sql-31e_21d` (errno: 150 "Foreign key constraint is incorrectly formed") 
MariaDB [alumni]> desc Member; 
+-----------+-------------+------+-----+---------+-------+ 
| Field  | Type  | Null | Key | Default | Extra | 
+-----------+-------------+------+-----+---------+-------+ 
| id  | char(8)  | NO | PRI |   |  | 
| cName  | varchar(8) | NO |  | NULL |  | 
| eName  | varchar(40) | NO |  | NULL |  | 
| gender | char(1)  | NO |  | NULL |  | 
| org  | varchar(40) | YES |  | NULL |  | 
| pos  | varchar(20) | YES |  | NULL |  | 
| hobby  | int(11)  | NO |  | NULL |  | 
| issueDate | date  | NO |  | NULL |  | 
| note  | text  | YES |  | NULL |  | 
+-----------+-------------+------+-----+---------+-------+ 
9 rows in set (0.01 sec) 

MariaDB [alumni]> desc Enrols; 
+-------+---------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------+---------+------+-----+---------+-------+ 
| id | int(11) | YES |  | NULL |  | 
| aid | int(11) | NO | PRI | NULL |  | 
| mid | char(8) | NO | PRI |   |  | 
| paid | date | YES |  | NULL |  | 
+-------+---------+------+-----+---------+-------+ 
4 rows in set (0.01 sec) 

MariaDB [alumni]> 
+1

それはすべきではない 'リファレンスメンバー(id)を参照したい;':

あなた.構文が意味していますか。? –

答えて

0

@Damien_The_Unbelieverが彼らのコメントで言ったように、それはreferences Member(id)する必要があります。スキーマMember参照テーブルidを(しかし、あなたはテーブル内idMember

関連する問題