0

私のスレッドを見てくれてありがとう。

テーブル内の親カテゴリの列を持つアイテム カテゴリの MySQL テーブルを作成しようとしています。私はそれを fk としてテーブルにリンクし、親を持たないアイテムの列値に (0) を挿入するつもりです。

テーブル定義は次のとおりです。

-- -----------------------------------------------------
-- Table `mydb`.`itemCategories`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`itemCategories` (
  `itecat_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `category` VARCHAR(60) NOT NULL ,
  `parentCat` INT UNSIGNED NOT NULL ,
  PRIMARY KEY (`itecat_id`) ,
  UNIQUE INDEX `uniqueCat` (`category` ASC) ,
  INDEX `fk_itemCategories_itemCategories1` (`parentCat` ASC) ,
 CONSTRAINT `fk_itemCategories_itemCategories1`
    FOREIGN KEY (`parentCat` )
    REFERENCES `mydb`.`itemCategories` (`itecat_id` )
    ON DELETE NO ACTION
   ON UPDATE NO ACTION)
ENGINE = InnoDB;

新しい行を挿入しようとすると、次のエラーが発生します。

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`mydb`.`itemCategories`, CONSTRAINT `fk_itemCategories_itemCategories1` FOREIGN KEY (`parentCat`) REFERENCES `itemCategories` (`itecat_id`) ON DELETE NO ACTION)

これを修正する方法、またはそれを行うためのより良い方法についての助けをいただければ幸いです。

ありがとう!

4

1 に答える 1

2

0値です!NULL「空のフィールド」として使用する必要があります。

于 2012-06-03T14:22:46.660 に答える