2017-05-06 27 views
0

我放棄了,我重寫了3次代碼,我找不到代碼中的問題...我已經做了很多複雜的數據庫,但我無法找到這個小東西有什麼問題......最後是代碼和錯誤。我不能把這個查詢工作...'mysql''phpmyadmin'

謝謝:)

create database whatgameshouldiplay; 

use whatgameshouldiplay; 

CREATE TABLE `randomgame` (
`nomejogo` varchar(100) NOT NULL, 
PRIMARY KEY (`nomejogo`) 
) ENGINE=InnoDB; 

create table `estilos` (
`codestilo` int(100) NOT NULL AUTO_INCREMENT, 
`estilo` varchar(100) NOT NULL, 
    PRIMARY KEY (`codestilo`) 
) ENGINE=InnoDB; 

Create table `gameEstilos`(
    `nomejogo` varchar(100) NOT NULL, 
    `estilo` varchar(100) NOT NULL, 
    primary key(`nomejogo`,`estilo`), 
    FOREIGN KEY (`nomejogo`) REFERENCES `randomgame` (`nomejogo`) ON UPDATE NO ACTION ON DELETE CASCADE, 
    FOREIGN KEY (`estilo`) REFERENCES `estilos` (`estilo`) ON UPDATE NO ACTION ON DELETE CASCADE 
) ENGINE=InnoDB; 

錯誤 SQL查詢:

創建表gameEstilosnomejogo VARCHAR(100)NOT NULL, estilo VARCHAR(100)NOT NULL, 主鍵( nomejogo,estilo), FOREIGN KEY(nomejogo)參考文獻randomgamenomejogo)ON UPDATE NO ACTION ON DELETE CASCADE, 外鍵(estilo)參考文獻estilosestilo)ON UPDATE NO ACTION ON DELETE CASCADE )ENGINE = InnoDB的 MySQL表示:文件

'#' 1215 - 不能添加外鍵約束

回答

0

表中的FOREIGN KEY指向另一個表中的PRIMARY KEY。

以下SQL從codestilo改變主鍵ESTILO工作後,也刪除AUTO_INCREMENT:

CREATE TABLE `randomgame` (
`nomejogo` varchar(100) NOT NULL, 
PRIMARY KEY (`nomejogo`) 
) ENGINE=InnoDB; 

create table `estilos` (
`codestilo` int(100) NOT NULL , 
`estilo` varchar(100) NOT NULL, 
    PRIMARY KEY (`estilo`) 
) ENGINE=InnoDB; 

Create table `gameEstilos`(
    `nomejogo` varchar(100) NOT NULL, 
    `estilo` varchar(100) NOT NULL, 
    primary key(`nomejogo`,`estilo`), 
    FOREIGN KEY (`nomejogo`) REFERENCES `randomgame` (`nomejogo`) ON UPDATE NO ACTION ON DELETE CASCADE, 
    FOREIGN KEY (`estilo`) REFERENCES `estilos` (`estilo`) ON UPDATE NO ACTION ON DELETE CASCADE 
) ENGINE=InnoDB; 
+0

但我需要codestilo被AUTO_INCREMENT,如果我使用它作爲外鍵作爲主要的estilos? – JoaoFRF

+0

嗯,我昨天真的很困,謝謝你的幫助我設法得到我想要的東西:) – JoaoFRF