SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.02.2011 14:49:04

ady
Завсегдатай
Зарегистрирован: 02.04.2007
Сообщений: 38

Непонятная проблема с foreign key

В приложении внезапно начала выпрыгивать ошибка:

Exception with query: DELETE FROM BF_PRICE_SCAN_TASK WHERE TASK_ID = 1 : java.sql.SQLException: null,  message from server: "Cannot delete or update a parent row: a foreign key constraint fails (`ba`.`bf_price_scan_task_request`, CONSTRAINT `FK483967A6A71B4CE6` FOREIGN KEY (`TASK_ID`) REFERENCES `bf_price_scan_task` (`TASK_ID`))"

Откуда взялся CONSTRAINT FK483967A6A71B4CE6 непонятно...

Таблицы создаются следующим образом:

CREATE  TABLE IF NOT EXISTS `ba`.`BF_PRICE_SCAN_TASK` (
  `TASK_ID` INT(11) NOT NULL ,
  `MARKET_ID` INT(11) NOT NULL ,
  `EVENT_ID` INT(11) NULL DEFAULT NULL ,
  `ACTIVE` INT(11) NULL DEFAULT NULL ,
  PRIMARY KEY (`TASK_ID`) ,
  INDEX `fk_BF_PRICE_SCAN_TASK_BF_MARKET1` (`EVENT_ID` ASC, `MARKET_ID` ASC) ,
  CONSTRAINT `fk_BF_PRICE_SCAN_TASK_BF_MARKET100`
    FOREIGN KEY (`EVENT_ID` , `MARKET_ID` )
    REFERENCES `ba`.`BF_MARKET` (`EVENT_ID` , `MARKET_ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8

CREATE  TABLE IF NOT EXISTS `ba`.`BF_PRICE_SCAN_TASK_REQUEST` (
  `TASK_ID` INT(11) NOT NULL ,
  `MARKET_ID` INT(11) NOT NULL ,
  `ADD_WHEN` DECIMAL(19,0) NOT NULL ,
  `USER_NAME` VARCHAR(64) NULL DEFAULT NULL ,
  PRIMARY KEY (`TASK_ID`) ,
  INDEX `fk_BF_PRICE_SCAN_TASK_REQUEST_BF_PRICE_SCAN_TASK1` (`TASK_ID` ASC) ,
  CONSTRAINT `fk_BF_PRICE_SCAN_TASK_REQUEST_BF_PRICE_SCAN_TASK10`
    FOREIGN KEY (`TASK_ID` )
    REFERENCES `ba`.`BF_PRICE_SCAN_TASK` (`TASK_ID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8

При удалении из BF_PRICE_SCAN_TASK из BF_PRICE_SCAN_TASK_REQUEST данные должны удаляться автоматически.

В чем может быть причина?

Отредактированно ady (24.02.2011 11:05:09)

Неактивен

 

#2 24.02.2011 01:25:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Непонятная проблема с foreign key

Ну, тут, кажется, Вы просто сделали резервную копию неудачно: у Вас
есть база ba и база banalyze. Вы сделали внешние ключи в другую базу,
а таблички показываете из этой smile

Неактивен

 

#3 24.02.2011 11:07:52

ady
Завсегдатай
Зарегистрирован: 02.04.2007
Сообщений: 38

Re: Непонятная проблема с foreign key

Спасибо. Нет, на самом деле я неудачно заменил имя схемы (не хочу, чтобы название проекта светилось в инете smile).
Откуда может появляться CONSTRAINT `FK483967A6A71B4CE6`, если его не было при создании?

Неактивен

 

#4 25.02.2011 00:06:23

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Непонятная проблема с foreign key

Поздно, название уже засветилось wink

CONSTRAINT мог появиться при каких-то обновлениях базы. Посмотрите SHOW CREATE
TABLE BF_PRICE_SCAN_TASK_REQUEST — скорее всего, он там есть.

Неактивен

 

#5 25.02.2011 12:06:26

ady
Завсегдатай
Зарегистрирован: 02.04.2007
Сообщений: 38

Re: Непонятная проблема с foreign key

Да, удалил вроде ошибка пропала.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson