Задавайте вопросы, мы ответим
Вы не зашли.
В приложении внезапно начала выпрыгивать ошибка:
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)
Неактивен
Ну, тут, кажется, Вы просто сделали резервную копию неудачно: у Вас
есть база ba и база banalyze. Вы сделали внешние ключи в другую базу,
а таблички показываете из этой
Неактивен
Спасибо. Нет, на самом деле я неудачно заменил имя схемы (не хочу, чтобы название проекта светилось в инете ).
Откуда может появляться CONSTRAINT `FK483967A6A71B4CE6`, если его не было при создании?
Неактивен
Поздно, название уже засветилось
CONSTRAINT мог появиться при каких-то обновлениях базы. Посмотрите SHOW CREATE
TABLE BF_PRICE_SCAN_TASK_REQUEST — скорее всего, он там есть.
Неактивен
Да, удалил вроде ошибка пропала.
Неактивен