Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121) / 7 сообщений из 7, страница 1 из 1
11.03.2018, 18:26
    #39613040
Ищущий1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
Доброго дня!!

установил MySql Workbehcn, создал таблицы как хотел. экспортировал.
Импортирую в phpAdmin Denwer, пробовал и на боевой сервер хостинга.
Постоянно ошибка:
#1005 - Can't create table '123.advert' (errno: 121)

Гугл говорит ошибка в foreign ключе, что-то где-то задвоилось или что-то не так. Заманался, не могу найти и понять что не так.

FULL EXPORT такой:
Код: 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.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
-- MySQL Script generated by MySQL Workbench
-- Sun Mar 11 22:25:31 2018
-- Model: New Model    Version: 1.0
-- 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 123
-- -----------------------------------------------------

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

-- -----------------------------------------------------
-- Table `123`.`user`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`user` (
  `id` INT(11) NULL,
  `username` VARCHAR(16) NOT NULL,
  `email` VARCHAR(255) NOT NULL,
  `password` VARCHAR(32) NOT NULL,
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`));


-- -----------------------------------------------------
-- Table `123`.`category`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`category` (
  `category_id` INT NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`category_id`));


-- -----------------------------------------------------
-- Table `123`.`sub_category`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`sub_category` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(100) CHARACTER SET 'ucs2' NOT NULL,
  `id_category` INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  CONSTRAINT `category_id`
    FOREIGN KEY (`id`)
    REFERENCES `123`.`category` (`category_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = utf8;


-- -----------------------------------------------------
-- Table `123`.`advert`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`advert` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `create_at` TIMESTAMP NULL,
  `update_at` TIMESTAMP NULL,
  `id_category` INT(11) NULL,
  `id_subcategory` INT(11) NULL,
  `type` TINYINT(3) UNSIGNED NULL DEFAULT NULL COMMENT 'NULL-услуги, 1 - продам, 2-куплю, 3-меняю, 4-сниму, 5-сдам',
  `email` VARCHAR(100) NOT NULL,
  `phone` VARCHAR(90) NOT NULL,
  `extra` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0-нет, 1-обычная рамка, 2-жирная рамка',
  `bold` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'false-без выделения жирным, true - выделить жирным',
  `output_numbers` TINYINT(3) UNSIGNED NOT NULL COMMENT 'выход номеров',
  `id_users` INT(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `test_idx` (`id_users` ASC),
  INDEX `category_id_idx` (`id_category` ASC),
  INDEX `subCategory_id_idx` (`id_subcategory` ASC),
  CONSTRAINT `user_id`
    FOREIGN KEY (`id_users`)
    REFERENCES `123`.`user` (`id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE,
  CONSTRAINT `category_id`
    FOREIGN KEY (`id_category`)
    REFERENCES `123`.`category` (`category_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `subCategory_id`
    FOREIGN KEY (`id_subcategory`)
    REFERENCES `123`.`sub_category` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = utf8;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


Странно конечно, что mySql workbench не исключает наличия ошибки в экспорте...
...
Рейтинг: 0 / 0
11.03.2018, 19:16
    #39613048
Ищущий1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
Все, нашел!

cetegory.category_id не стоял автоинкремент, из-за этого, вероятно, несмотря на то, что стоял primaryKey нельзя было к нему подвязаться. Странная конечно ошибка...
...
Рейтинг: 0 / 0
11.03.2018, 19:21
    #39613050
Ищущий1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
Поторопился.
Все создалось, но перегружаю вновь ошибка... так же самая
...
Рейтинг: 0 / 0
11.03.2018, 19:46
    #39613057
Ищущий1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
Так нельзя????
https://yadi.sk/i/g3VOPmBI3TFN75
...
Рейтинг: 0 / 0
11.03.2018, 20:28
    #39613064
Ищущий1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
некому ответить?)
...
Рейтинг: 0 / 0
11.03.2018, 20:59
    #39613069
Ищущий1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
кто-то может сказать почему вот этот код при импорте в phpMyAdmin не работает?
постоянно ошибка:
#1005 - Can't create table '123.advert' (errno: 121)

Проект базы сделан в MySQL Workbench?

ошибка находится в строчках:
Код: sql
1.
2.
3.
4.
5.
CONSTRAINT `category_id`
    FOREIGN KEY (`id_category`)
    REFERENCES `123`.`category` (`category_id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE,

Если их убрать, запрос проходит. Причем эту связь можно будет потом вручную без проблем создать в том же phpmyadmin.
Что не так то? Почему не проглатывает?

Код: 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.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
-- MySQL Script generated by MySQL Workbench
-- Mon Mar 12 00:37:59 2018
-- Model: New Model    Version: 1.0
-- 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 123
-- -----------------------------------------------------

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

-- -----------------------------------------------------
-- Table `123`.`user`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`user` (
  `id` INT(11) NULL,
  `username` VARCHAR(16) NOT NULL,
  `email` VARCHAR(255) NOT NULL,
  `password` VARCHAR(32) NOT NULL,
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`));


-- -----------------------------------------------------
-- Table `123`.`category`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`category` (
  `category_id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`category_id`));


-- -----------------------------------------------------
-- Table `123`.`sub_category`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`sub_category` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(100) CHARACTER SET 'ucs2' NOT NULL,
  `id_category` INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  CONSTRAINT `category_id`
    FOREIGN KEY (`id_category`)
    REFERENCES `123`.`category` (`category_id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = utf8;


-- -----------------------------------------------------
-- Table `123`.`advert`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `123`.`advert` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `create_at` TIMESTAMP NULL,
  `update_at` TIMESTAMP NULL,
  `id_category` INT(11) NULL,
  `id_subcategory` INT(11) NULL,
  `type` TINYINT(3) UNSIGNED NULL DEFAULT NULL COMMENT 'NULL-услуги, 1 - продам, 2-куплю, 3-меняю, 4-сниму, 5-сдам',
  `email` VARCHAR(100) NOT NULL,
  `phone` VARCHAR(90) NOT NULL,
  `extra` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0-нет, 1-обычная рамка, 2-жирная рамка',
  `bold` TINYINT(1) NOT NULL DEFAULT '0' COMMENT 'false-без выделения жирным, true - выделить жирным',
  `output_numbers` TINYINT(3) UNSIGNED NOT NULL COMMENT 'выход номеров',
  `id_users` INT(11) NULL,
  PRIMARY KEY (`id`),
  INDEX `test_idx` (`id_users` ASC),
  INDEX `category_id_idx` (`id_category` ASC),
  INDEX `sub_category_idx` (`id_subcategory` ASC),
  CONSTRAINT `user_id`
    FOREIGN KEY (`id_users`)
    REFERENCES `123`.`user` (`id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE,
  CONSTRAINT `category_id`
    FOREIGN KEY (`id_category`)
    REFERENCES `123`.`category` (`category_id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE,
  CONSTRAINT `sub_category`
    FOREIGN KEY (`id_subcategory`)
    REFERENCES `123`.`sub_category` (`id`)
    ON DELETE NO ACTION
    ON UPDATE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = utf8;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


Связь advert.category_id -> category.category_id не может создать!!

Кто-нибудь понимает в чем проблема??
...
Рейтинг: 0 / 0
12.03.2018, 18:09
    #39613698
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
Ищущий1,

Ошибки внешних ключей: errno 150, MySQL error 1005 и другие
Errno 121

Такой результат возникает только в одном случае.

Б1. Неуникальное имя ограничения. Обратите внимание: речь не о имени внешнего ключа. Если при создании внешнего ключа вы указываете не обязательное ключевое слово CONSTRAINT, то идущий после него идентификатор должен быть уникальным в пределах базы данных.
в вашем случае
CONSTRAINT `category_id`
встречался ранее в таблице `sub_category`
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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