无法添加外键MySQL

时间:2013-01-04 03:59:37

标签: mysql sql foreign-keys constraints foreign-key-relationship

我正在使用PHP MySQL并尝试将一个外键添加到一个名为agents的表中,该表名为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 

我做错了什么?

3 个答案:

答案 0 :(得分:5)

AreaId 列在两个表中必须具有相同的数据类型长度已签名/未签名属性。例如,在区域 AreaId 列中 INT(10)UNSIGNED ,则属性表必须具有相同 INT(10)UNSIGNED的列专栏。您可以更改列名称,但数据类型长度已签名属性必须为同样的。

试试此 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; 

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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