mysql 引用键问题,phpmyadmin 错误代码 150 [重复]

Posted

技术标签:

【中文标题】mysql 引用键问题,phpmyadmin 错误代码 150 [重复]【英文标题】:mysql refference key issue, phpmyadmin error code 150 [duplicate] 【发布时间】:2015-08-11 04:37:05 【问题描述】:

我正在尝试创建如下两个表,

--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (   `Id` int(11) NOT NULL
AUTO_INCREMENT,   `UserType` varchar(32) DEFAULT NULL,   `FirstName`
varchar(64) DEFAULT NULL,   `LastName` varchar(64) DEFAULT NULL,  
`Email` varchar(64) DEFAULT NULL,   `CompanyName` varchar(64) DEFAULT
NULL,   `Telephone` varchar(64) DEFAULT NULL,   `Country` varchar(64)
DEFAULT NULL,   `Website` varchar(64) DEFAULT NULL,   `JobTitle`
varchar(64) DEFAULT NULL,   `Active` int(1) DEFAULT NULL,   `Notes`
text,   `DateOfRegistration` datetime DEFAULT NULL,   PRIMARY KEY
(`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Table structure for table `login`
--

CREATE TABLE IF NOT EXISTS `login` (   `Id` int(11) NOT NULL,  
`Username` varchar(64) NOT NULL,   `Email` varchar(64) NOT NULL,  
`Password` varchar(64) NOT NULL,   `FailedAttemptCount` int(2) NOT
NULL,   `LastLogin` datetime NOT NULL,   `UserLevel` int(1) NOT NULL, 
`IsVerified` int(1) NOT NULL DEFAULT '0',   `VerificationKey`
varchar(256) NOT NULL,   `VerifiKeyCreated` datetime NOT NULL,  
PRIMARY KEY (`Id`),   FOREIGN KEY (`Id`) REFERENCES users.Id,   UNIQUE
KEY `username` (`Username`),   UNIQUE KEY `Email` (`Email`) )
ENGINE=InnoDB DEFAULT CHARSET=latin1;

我想添加一个外键,即 login.Id 引用 users.Id,但在 phpmyadmin 中出现错误(代码 150)。

提前感谢您的帮助!

最好的问候, 拉吉布

【问题讨论】:

我投票决定将其作为一个简单的印刷错误关闭。应该是FOREIGN KEY(id) REFERENCES users(id) 【参考方案1】:

应该是

REFERENCES `users`(`Id`)

而不是

REFERENCES users.Id

参见。 http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

【讨论】:

以上是关于mysql 引用键问题,phpmyadmin 错误代码 150 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHPMyAdmin 在外键设置上抛出错误

MySQL:如何在 phpMyAdmin 上设置主键?

如何将数据库从MySQL Workbench导入phpMyAdmin而不会在尝试中死亡?

MySQL的前缀键不正确[重复]

创建外键时,phpmyadmin 中的外键约束失败

phpmyadmin 2002 错误,mysql.sock.lock 似乎取代了 mysql.sock 文件