我放弃了,我已经重写了3次代码了,我在代码中找不到问题...我做了很多复杂的数据库,但我找不到这个小东西出了什么问题。 ..这是代码和最后的错误。
谢谢:)
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) NOT NULL,
主键(nomejogo
,estilo
),
外键(nomejogo
)引用randomgame
(nomejogo
)更新时没有删除级联操作,
外键 ( estilo
) 引用 estilo
( estilo
) 更新时没有删除级联操作
) 引擎=InnoDB
MySQL 说:文档
'#'1215 - 无法添加外键约束
最佳答案
表中的外键指向另一个表中的主键。
以下 SQL 在将 PRIMARY KEY 从 codetilo 更改为 estilo 并删除 AUTO_INCRMENT 后正常工作:
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;
关于php - 我无法执行此查询... 'mysql' 'phpmyadmin',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43815829/