저는 MySQL에서 작업 중이므로 # 1452 오류가 발생했습니다. 나는 테이블 ASTA 및 utente에 문제가있는 *MySQL 오류 # 1452 : 자식 행을 추가하거나 업데이트 할 수 없습니다. 외래 키 제약 조건이 적용되지 않습니다.
CREATE TABLE IF NOT EXISTS `eurobid`.`utente` (
`username` VARCHAR(45) NOT NULL,
`nome` VARCHAR(45) NOT NULL,
`cognome` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(45) NOT NULL,
`indirizzo` VARCHAR(45) NOT NULL,
`cap` INT NOT NULL,
`citta` VARCHAR(45) NOT NULL,
`stato` VARCHAR(45) NOT NULL,
`admin` TINYINT(1) NULL,
`feedback` INT NULL,
`sommafeedback` INT NULL,
PRIMARY KEY (`username`),
UNIQUE INDEX `Username_UNIQUE` (`username` ASC))
ENGINE = MyISAM;
CREATE TABLE IF NOT EXISTS `eurobid`.`categorie` (
`id_categoria` INT NOT NULL AUTO_INCREMENT,
`tipologia` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id_categoria`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `eurobid`.`pagamento` (
`id_pagamento` INT NOT NULL AUTO_INCREMENT,
`tipologia` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id_pagamento`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `eurobid`.`spedizione` (
`id_spedizione` INT NOT NULL AUTO_INCREMENT,
`tipo` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id_spedizione`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `eurobid`.`asta` (
`id_asta` INT NOT NULL AUTO_INCREMENT,
`titolo` VARCHAR(45) NOT NULL,
`descrizione` VARCHAR(500) NOT NULL,
`foto` VARCHAR(45) NULL DEFAULT './images/default.jpg',
`inizio_asta` DATETIME NOT NULL,
`fine_asta` DATETIME NOT NULL,
`prezzo_base` DECIMAL(5) NOT NULL,
`prezzo_riserva` DECIMAL(5) NULL,
`in_corso` TINYINT(1) NOT NULL DEFAULT 1,
`feedback` VARCHAR(250) NULL,
`vincitore` VARCHAR(45) NULL,
`id_venditore` VARCHAR(45) NOT NULL,
`id_categoria` INT NOT NULL,
`tipo_pagamento` INT NOT NULL,
`id_spedizione` INT NOT NULL,
PRIMARY KEY (`id_asta`),
INDEX `fk_Asta_Utente_idx` (`id_venditore` ASC),
INDEX `fk_Asta_Categorie1_idx` (`id_categoria` ASC),
INDEX `fk_Asta_Pagamento1_idx` (`tipo_pagamento` ASC),
INDEX `fk_Asta_spedizione1_idx` (`id_spedizione` ASC),
CONSTRAINT `fk_Asta_Utente`
FOREIGN KEY (`id_venditore`)
REFERENCES `eurobid`.`utente` (`username`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Asta_Categorie1`
FOREIGN KEY (`id_categoria`)
REFERENCES `eurobid`.`categorie` (`id_categoria`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Asta_Pagamento1`
FOREIGN KEY (`tipo_pagamento`)
REFERENCES `eurobid`.`pagamento` (`id_pagamento`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Asta_spedizione1`
FOREIGN KEY (`id_spedizione`)
REFERENCES `eurobid`.`spedizione` (`id_spedizione`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `eurobid`.`offerta` (
`id_offerta` INT NOT NULL,
`prezzo` DECIMAL(5) NOT NULL,
`data` TIMESTAMP NOT NULL,
`username` VARCHAR(45) NOT NULL,
`id_asta` INT NOT NULL,
PRIMARY KEY (`id_offerta`, `username`, `id_asta`),
INDEX `fk_offerta_Utente1_idx` (`username` ASC),
INDEX `fk_offerta_Asta1_idx` (`id_asta` ASC),
CONSTRAINT `fk_offerta_Utente1`
FOREIGN KEY (`username`)
REFERENCES `eurobid`.`Utente` (`username`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_offerta_Asta1`
FOREIGN KEY (`id_asta`)
REFERENCES `eurobid`.`Asta` (`id_asta`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
:
다음은 내 MySQL의 스키마입니다. *
#1452 - Cannot add or update a child row: a foreign key constraint fails (`eurobid`.`asta`, CONSTRAINT `fk_Asta_Utente` FOREIGN KEY (`id_venditore`) REFERENCES `utente` (`username`) ON DELETE NO ACTION ON UPDATE NO ACTION)
쿼리입니다와 나는 문제가 발생 :
INSERT INTO `eurobid`.`asta` (`id_asta`, `titolo`, `descrizione`, `foto`, `inizio_asta`, `fine_asta`, `prezzo_base`, `prezzo_riserva`, `in_corso`, `feedback`, `vincitore`, `id_venditore`, `id_categoria`, `id_pagamento`, `id_spedizione`) VALUES ('0', 'Aprilia SR 50', 'Bellissimo scooter', './images/default.jpg', '2014-08-29 01:00:00', '2014-08-31 01:00:00', '950', '970', '1', NULL, NULL, 'evin', '1', '2', '3')
아래 볼 수
내가 phpMyAdmin을에 새 행을 추가하려고
오류 # 1452를 반환어디서 잘못 됐습니까? 어떤 도움을 많이 부탁드립니다
데이터베이스가 ** 사용자 이름 ** 필드를 인식하지 못하는 이유를 모르겠습니다. 여기에서 볼 수 있듯이 [http://i.imgur.com/R8KyN81.jpg](http://i.imgur.com/R8KyN81.jpg) 사용자 ** evin **이 테이블에 올바르게 삽입되었습니다. * * utente ** – Evinrude
이것 좀보세요. 거기에 훨씬 더 많은 것들을 확인할 수있는 더 많은 솔루션이 있습니다 : http://stackoverflow.com/questions/1253459/mysql-error-1452-cannot-add-or-update-a-child-row- a-foreign-key-constraint-fa? rq = 1 – jbutler483