私はまだこれに新しいので、私はルールを学ぶ間に忍耐を持っています。 私はmysqlスクリプトに問題があります。私は非常に一般的な1215エラー(外部キーを作成できません)を受け取ります。エラー1215外部キー制約
私は既にデータ型をチェックしています。働いていない。
The script. Issue is with the two final foreign keys
私はまだこれに新しいので、私はルールを学ぶ間に忍耐を持っています。 私はmysqlスクリプトに問題があります。私は非常に一般的な1215エラー(外部キーを作成できません)を受け取ります。エラー1215外部キー制約
私は既にデータ型をチェックしています。働いていない。
The script. Issue is with the two final foreign keys
次のように宣言する必要があります。
Create table(id ... , foreignKEY INT NOT NULL,
Constraint FOREIGN KEY(foreignKEY) REFERENCES table_refered(it primary key));
// foreignKEY-が列として最初に宣言し、その宣言の後にする必要があります。
は、最初の外部キーを宣言する必要がありますそれはFOREIGN KEY
GOOD LUCKです。
参照されたテーブルと列の構文を間違えただけです。
は、次の例のように書いた:
foreign key (rm_id) references roomate.rm_id,
は、それは次のようになります。
foreign key (rm_id) references roomate(rm_id),
構文はここに文書化されている:http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html
あなたの間違いPERCENTAGE
テーブルを参照key
を割り当てるとき。参照キーはこのようにする必要があります。これに代えて
FOREIGN KEY (RM_ID) REFERENCES ROOMMATE(RM_Id)
FOREIGN KEY (ITM_Id) REFERENCES ITEM(ITM_Id)
は:
FOREIGN KEY (RM_ID) REFERENCES ROOMMATE.RM_Id
FOREIGN KEY (ITM_Id) REFERENCES ITEM.ITM_Id
私はあなたの主キー/一意制約に名前を割り当てていないに気づくと、あなたもあなたの外部キーからそれらを省略することができます。また、単純な(単一列の)キーの場合は、列宣言などでインラインで宣言できます。 snipped例:
CREATE TABLE ITEM (ITM_ID INT(3) NOT NULL UNIQUE);
CREATE TABLE PERCENTAGE (ITM_ID INT(3) NOT NULL REFERENCES ITEM (ITM_ID));
ありがとうございました。 –