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

установил 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
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
    #39613048
Ищущий1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, нашел!

cetegory.category_id не стоял автоинкремент, из-за этого, вероятно, несмотря на то, что стоял primaryKey нельзя было к нему подвязаться. Странная конечно ошибка...
...
Рейтинг: 0 / 0
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
    #39613050
Ищущий1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поторопился.
Все создалось, но перегружаю вновь ошибка... так же самая
...
Рейтинг: 0 / 0
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
    #39613057
Ищущий1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так нельзя????
https://yadi.sk/i/g3VOPmBI3TFN75
...
Рейтинг: 0 / 0
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
    #39613064
Ищущий1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
некому ответить?)
...
Рейтинг: 0 / 0
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
    #39613069
Ищущий1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто-то может сказать почему вот этот код при импорте в 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
ошибка при импорте в phpadmin: #1005 - Can't create table '123.advert' (errno: 121)
    #39613698
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищущий1,

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

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

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


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