我正在使用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
我做错了什么?
答案 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 仅支持外键约束