我不能让这个查询工作......'mysql''phpmyadmin'
Posted
技术标签:
【中文标题】我不能让这个查询工作......\'mysql\'\'phpmyadmin\'【英文标题】:I can't put this query to work... 'mysql' 'phpmyadmin'我不能让这个查询工作......'mysql''phpmyadmin' 【发布时间】:2017-10-04 13:52:16 【问题描述】:我放弃了,我已经重写了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) 非空,
estilo
varchar(100) 非空,
主键(nomejogo
,estilo
),
外键 (nomejogo
) 参考 randomgame
(nomejogo
) 更新时没有删除级联操作,
外键 (estilo
) 参考 estilos
(estilo
) 更新 删除级联时无操作
) 引擎=InnoDB
mysql 说:文档
'#'1215 - 无法添加外键约束
【问题讨论】:
【参考方案1】:一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
在将 PRIMARY KEY 从 codestilo 更改为 estilo 并删除 AUTO_INCREMENT 后,以下 SQL 正在工作:
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;
【讨论】:
但是我需要codestilo为auto_increment,如果我在estilos中使用它作为外键作为主键呢? 嗯,我昨天真的很困,谢谢你的帮助,我已经设法得到我想要的:)以上是关于我不能让这个查询工作......'mysql''phpmyadmin'的主要内容,如果未能解决你的问题,请参考以下文章