2016-03-25 2 views
0

Я пытаюсь создать систему для газеты для школьного проекта, и это часть этого кода. По некоторым причинам я получаю «Код ошибки: 1215. Невозможно добавить ограничение внешнего ключа»Внешние ключи не «работают»?

-- MySQL Workbench Forward Engineering 

SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; 

-- ----------------------------------------------------- 
-- Schema nyheterhiof 
-- ----------------------------------------------------- 

-- ----------------------------------------------------- 
-- Schema nyheterhiof 
-- ----------------------------------------------------- 
CREATE SCHEMA IF NOT EXISTS nyheterhiof DEFAULT CHARACTER SET utf8 ; 
USE nyheterhiof ; 

-- ----------------------------------------------------- 
-- Table nyheterhiof.newspapers 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS nyheterhiof.newspapers (
    newspaper_id INT(11) NOT NULL, 
    newspaper_name VARCHAR(45) NULL, 
    newspaper_city VARCHAR(45) NULL, 
    PRIMARY KEY (newspaper_id), 
    UNIQUE INDEX newspaper_id_UNIQUE (newspaper_id ASC)) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table nyheterhiof.newspaper_Issues 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS nyheterhiof.newspaper_issues (
    newspaper_issiue_id INT(11) NOT NULL, 
    newspaper_id VARCHAR(45) NOT NULL, 
    publication_date DATE NOT NULL, 
    comment VARCHAR(200) NULL, 
    PRIMARY KEY (newspaper_issiue_id), 
    UNIQUE INDEX newspaper_issiue_id_UNIQUE (newspaper_issiue_id ASC), 
    INDEX fk_newspaper_Issues_newspapers1_idx (newspaper_id ASC), 
    CONSTRAINT fk_newspaper_Issues_newspapers1 
    FOREIGN KEY (newspaper_id) 
    REFERENCES newspapers (newspaper_id) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

Я попытался переместить FK к альтер таблицы даного, я попытался добавить индексы к newspaper_id в «newspaper_issiues».

ответ

1

Вы указали

CREATE TABLE IF NOT EXISTS nyheterhiof.newspapers (
    newspaper_id INT(11) NOT NULL, 

и

CREATE TABLE IF NOT EXISTS nyheterhiof.newspaper_issues (
    ... 
    newspaper_id VARCHAR(45) NOT NULL, 

Это проблема. Столбы на обоих концах ограничения внешнего ключа ДОЛЖНО соответствие по типу и ширине.

Redefine newspaper_issues.newspaper_id в INT и вы будете хорошо идти.

+0

Святой ад, как я пропустил это! Удивительно, спасибо! –

Смежные вопросы