0

我正在使用 PHP MySQL 并尝试将外键添加到名为 agent 的表中,该表具有名为 AreaID 的列,该列应该是区域表 AreaID PK 的外键。我使用了这个查询,虽然它在添加链接到其他表的外键时有效,但它不能链接到区域表。

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列。您可以更改列名,但datatypelengthsigned属性必须相同。

试试这个ALTER语句并检查这个链接MySQL Foreign Key Constraints

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

检查数据库.. InnoDB仅支持外键约束

于 2013-01-04T05:19:49.593 回答
0

请检查两个字段的所有特征是否相同。

于 2013-01-04T04:01:46.117 回答