Sim*_*nti 4 sql cascade mysql-error-1451
CREATE TABLE `categories` (
`idcategories` INT NOT NULL AUTO_INCREMENT ,
`idparent` INT NULL ,
`description` VARCHAR(45) NULL ,
PRIMARY KEY (`idcategories`) );
ALTER TABLE `categories`
ADD CONSTRAINT `FK_idparent`
FOREIGN KEY (`idparent` )
REFERENCES `ilmercatinodelpulcino`.`categories` (`idcategories` )
ON DELETE CASCADE
ON UPDATE CASCADE
, ADD INDEX `FK_idparent` (`idparent` ASC) ;
INSERT INTO `categories` (`idcategories`, `description`)
VALUES (1, 'cat1');
INSERT INTO `categories` (`idcategories`, `idparent`, `description`)
VALUES (2, 1, 'cat1_child');
Run Code Online (Sandbox Code Playgroud)
因此,此表表示一个类别,具有ID和自我指向的父ID.我插入了一个类别cat1和一个子类别cat1_child,其父ID为cat1.
现在,我希望能够将cat1的idcategory从1更改为10,因为我在更新CASCADE上设置了外键,我希望cat1_child的idparent也将设置为10.但当我这样做时:
UPDATE `categories` SET `idcategories`=10 WHERE `idcategories`='1';
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
错误1451:无法删除或更新父行:外键约束失败(
categories,CONSTRAINTFK_idparentFOREIGN KEY(idparent)REFERENCEScategories(idcategories)ON DELETE CASCADE ON UPDATE CASCADE)SQL语句:UPDATEcategoriesSETidcategories= 10 WHEREidcategories='1'
删除工作按预期工作,删除cat1,cat1_child也将被删除.
错误在哪里?比你.
| 归档时间: |
|
| 查看次数: |
10309 次 |
| 最近记录: |