无法在表中设置外键

时间:2015-10-18 08:54:27

标签: mysql asp.net

我有2张桌子。

login (login_id primary key 
Email varchar(254) not null
Password varchar(20) not null)

registration(
id PK
Email
password
name
... etc

)

我试图将登录电子邮件设置为外键并注册(电子邮件)作为参考。 但我无法做到这一点 ALTER TABLE登录ADD FOREIGN KEY(电子邮件)REFERENCES registraion(email);

我将它用于项目,以便在以用户身份登录时与登录和注册电子邮件匹配。 有人可以帮助

2 个答案:

答案 0 :(得分:1)

2个表中的列定义必须匹配要创建的FK。

registration( id PK, Email VARCHAR(254) NOT NULL, password name

两个表中列的数据类型和长度必须匹配。

答案 1 :(得分:0)

外键可以通过引用另一个表上的主键唯一键来创建,但具有某些限制,例如列类型和大小。两列的类型和大小必须匹配。

有关事实的更详细讨论,您可以参考此SO帖子mysql-non-primary-foreign-key和此MySql参考手册create-table-foreign-keys