我遇到了SQL表問題。所以我有我的Usertable:MySQL MariaDB不會使用外鍵創建表格
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)
)
在執行查詢我得到這個errormassage:
**#1005 - Kann Tabelle `xxxxx`.`scores` nicht erzeugen (Fehler: 150 "Foreign key constraint is incorrectly formed") (Details…)**
其在德國,並表示着創建表,錯誤150,我不能看到關鍵的約束是錯誤的,我在postgreSQL中使用了相同的語法,並且它工作正常,但不知何故MySQL不接受它。有任何想法嗎?
所以如果我重新創建用戶用下面的查詢它應該工作?: CREATE TABLE IF NOT EXISTS'user'( 'ID' INT(11)NOT NULL自動遞增, 'NICKNAME' VARCHAR(50)NOT NULL, 'PASSWORD' VARCHAR(255)NOT NULL, 'EMAIL' VARCHAR(50)DEFAULT NULL, PRIMARY KEY('NICKNAME') UNIQUE KEY'ID'(' ID'), UNIQUE KEY'NICKNAME'('NICKNAME') ) –
@AraLight。 。 。你的原始代碼應該可以工作,'nickname'作爲主鍵。但我會更改用戶表,所以整數列是主鍵。 –