Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Cannot add foreign key constraint / 5 сообщений из 5, страница 1 из 1
22.01.2016, 17:55:53
    #39153288
Pim.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cannot add foreign key constraint
Всем доброго времени суток!

При попытки залить схему возникает ошибка
авторERROR: Error 1215: Cannot add foreign key constraint
Никак не пойму, где причина. Сначала на ON DELETE стоял CASCADE, но ошибка та же вылетала. Все типы внешних ключей соответствуют родительским.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema atm_db
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `atm_db` ;

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

-- -----------------------------------------------------
-- Table `atm_db`.`weekdays`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `atm_db`.`weekdays` ;

CREATE TABLE IF NOT EXISTS `atm_db`.`weekdays` (
  `weekday_id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `weekday_name` CHAR(2) NOT NULL,
  PRIMARY KEY (`weekday_id`),
  UNIQUE INDEX `weekday_name_UNIQUE` (`weekday_name` ASC))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `atm_db`.`weekperiods`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `atm_db`.`weekperiods` ;

CREATE TABLE IF NOT EXISTS `atm_db`.`weekperiods` (
  `weekperiod_id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `weekday_from` TINYINT(3) NOT NULL,
  `weekday_to` TINYINT(3) NOT NULL,
  PRIMARY KEY (`weekperiod_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `atm_db`.`weekperiods_days`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `atm_db`.`weekperiods_days` ;

CREATE TABLE IF NOT EXISTS `atm_db`.`weekperiods_days` (
  `weekperiod_day_id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  `weekday_id` TINYINT(3) NOT NULL,
  `weekperiod_id` TINYINT(3) NOT NULL,
  PRIMARY KEY (`weekperiod_day_id`),
  INDEX `fk_weekperiods_days_weekdays_idx` (`weekday_id` ASC),
  INDEX `fk_weekperiods_days_weekperiods1_idx` (`weekperiod_id` ASC),
  CONSTRAINT `fk_weekperiods_days_weekdays`
    FOREIGN KEY (`weekday_id`)
    REFERENCES `atm_db`.`weekdays` (`weekday_id`)
    ON DELETE RESTRICT
    ON UPDATE RESTRICT,
  CONSTRAINT `fk_weekperiods_days_weekperiods1`
    FOREIGN KEY (`weekperiod_id`)
    REFERENCES `atm_db`.`weekperiods` (`weekperiod_id`)
    ON DELETE RESTRICT
    ON UPDATE RESTRICT)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
...
Рейтинг: 0 / 0
22.01.2016, 18:03:00
    #39153292
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cannot add foreign key constraint
Pim.Все типы внешних ключей соответствуют родительским.Нет, не соответствуют. UNSIGNED потерялся.
...
Рейтинг: 0 / 0
22.01.2016, 18:04:57
    #39153294
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cannot add foreign key constraint
Имя FK идёт ПОСЛЕ FOREIGN KEY, а не после CONSTRAINT.
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
...
Рейтинг: 0 / 0
22.01.2016, 21:31:35
    #39153416
adv
adv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cannot add foreign key constraint
AkinaИмя FK идёт ПОСЛЕ FOREIGN KEY, а не после CONSTRAINT.
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html Это не совсем так )

Почитайте повнимательнее.
...
Рейтинг: 0 / 0
22.01.2016, 22:55:06
    #39153447
Pim.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cannot add foreign key constraint
miksoftPim.Все типы внешних ключей соответствуют родительским.Нет, не соответствуют. UNSIGNED потерялся.

Точно! Спасибо большое!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Cannot add foreign key constraint / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]