【问题标题】: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 - 无法添加外键约束

【问题讨论】:

    标签: php html mysql database phpmyadmin


    【解决方案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中使用它作为外键作为主键呢?
    • 嗯,我昨天真的很困,谢谢你的帮助,我已经设法得到我想要的:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多