【发布时间】:2017-04-05 12:51:42
【问题描述】:
我的 SQL 表有问题。所以我有我的用户表:
CREATE TABLE IF NOT EXISTS `user` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NICKNAME` varchar(50) NOT NULL,
`PASSWORD` varchar(255) NOT NULL,
`EMAIL` varchar(50) DEFAULT NULL,
PRIMARY KEY (`NICKNAME`),
UNIQUE KEY `ID` (`ID`)
) ;
此表已经存在并且创建时没有任何问题。我想创建一个这样的分数表:
CREATE TABLE IF NOT EXISTS `scores` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NICKNAME` varchar(50) NOT NULL,
`HIGHSCORE` int(11) NOT NULL,
PRIMARY KEY (`ID`),
FOREIGN KEY (NICKNAME) REFERENCES USER(Nickname)
)
在执行查询时,我收到此错误消息:
**#1005 - Kann Tabelle `xxxxx`.`scores` nicht erzeugen (Fehler: 150 "Foreign key constraint is incorrectly formed") (Details…)**
它在德语中说不能创建表,错误 150,我看不出键约束在哪里出错,我在 postgreSQL 中使用了相同的语法,它工作正常,但不知何故 MySQL 不接受它。有什么想法吗?
【问题讨论】:
标签: mysql sql foreign-keys constraints mariadb