Я не могу поставить этот запрос на работу … ‘mysql’ ‘phpmyadmin’

Я сдаюсь, я переписал код 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) НЕ NULL,
estilo varchar (100) НЕ NULL,
основной ключ(nomejogo,estilo),
ИНОСТРАННЫЙ КЛЮЧ (nomejogo) РЕКОМЕНДАЦИИ randomgame ( nomejogo ) В ОБНОВЛЕНИИ НЕТ ДЕЙСТВИЙ ПО УДАЛЕНИЮ КАСКАДА,
ИНОСТРАННЫЙ КЛЮЧ ( estilo ) РЕКОМЕНДАЦИИ estilos ( estilo ) В ОБНОВЛЕНИИ НЕТ ДЕЙСТВИЙ ПО УДАЛЕНИЮ КАСКАДА
) ДВИГАТЕЛЬ = InnoDB
MySQL сказал: Документация

‘#’ 1215 — Невозможно добавить ограничение внешнего ключа

0

Решение

ИНОСТРАННЫЙ КЛЮЧ в таблице указывает на ПЕРВИЧНЫЙ КЛЮЧ в другой таблице.

Ниже SQL работают после изменения PRIMARY KEY с codetilo на 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;
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector