我放弃了,我重写了三次代码,但我在代码中找不到问题.我做了很多复杂的数据库但是我找不到这个小东西有什么问题.这是代码和最后的错误。
谢谢您:)
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查询:
创建表gameEstilos( nomejogo varchar(100) NOT NULL,estilo varchar(100) NULL,主键(nomejogo,estilo),外键(nomejogo)引用randomgame ( nomejogo ),更新时不对DELETE级联操作,外键( estilo )引用<nomejogo>D10(<nomejogo>D11),更新时不对DELETE级联采取任何行动) ENGINE=InnoDB MySQL说:
'#'1215 -不能添加外键约束
发布于 2017-05-06 03:24:01
表中的外键指向另一个表中的主键。
下面的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;https://stackoverflow.com/questions/43815829
复制相似问题