我不能让这个查询工作......'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'的主要内容,如果未能解决你的问题,请参考以下文章

让 LEFT OUTER JOIN 工作的问题

如何加快这个 MySQL 查询

mysql "or" 查询操作顺序

sum()在具有多个联接的MySQL查询中不能正常工作(group by不能按预期工作)

MySQL优化实施方案

mysql 中的舍入不能按预期工作