0

PHP MySQLを使用しており、エリアテーブルAreaIDPKの外部キーであるAreaIDという列を持つエージェントというテーブルに外部キーを追加しようとしています。このクエリを使用しました。他のテーブルにリンクする外部キーを追加している間は機能しますが、エリアテーブルにリンクすることはできません。

ALTER TABLE properties
ADD FOREIGN KEY (AreaID)
REFERENCES area(AreaID)

私が復活させるエラーは次のとおりです。

ALTER TABLE properties ADD FOREIGN KEY ( AreaID ) REFERENCES AREA( AreaID )

MySQLは言った:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'area(AreaID)' at line 3 

私は何が間違っているのですか?

4

3 に答える 3

5

AreaId列は、両方のテーブルで同じデータ型長さ、および符号付き/符号なし属性を持っている必要があります。たとえば、AreaテーブルのAreaId列がINT(10)UNSIGNEDの場合、プロパティテーブルには同じINT(10)UNSIGNED列の列が必要です。列名は変更できますが、データ型長さ、および符号付き属性は同じである必要があります。

このALTERステートメントを試して、このリンクを確認してくださいMySQL外部キー制約

ALTER TABLE properties 
    ADD CONSTRAINT FK_Area 
    FOREIGN KEY (AreaID) 
    REFERENCES AREA(AreaID) 
    ON UPDATE NO ACTION 
    ON DELETE NO ACTION; 
于 2013-01-04T05:13:15.270 に答える
0

2つのフィールドのすべての特性が同じであるかどうかを確認してください。

于 2013-01-04T04:01:46.117 に答える
0

データベースを確認してください。InnoDBは外部キー制約のみをサポートします

于 2013-01-04T05:19:49.593 に答える