2014-08-29 2 views
0

저는 MySQL에서 작업 중이므로 # 1452 오류가 발생했습니다. 나는 테이블 ASTAutente에 문제가있는 *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를 반환

어디서 잘못 됐습니까? 어떤 도움을 많이 부탁드립니다

+0

데이터베이스가 ** 사용자 이름 ** 필드를 인식하지 못하는 이유를 모르겠습니다. 여기에서 볼 수 있듯이 [http://i.imgur.com/R8KyN81.jpg](http://i.imgur.com/R8KyN81.jpg) 사용자 ** evin **이 테이블에 올바르게 삽입되었습니다. * * utente ** – Evinrude

+0

이것 좀보세요. 거기에 훨씬 더 많은 것들을 확인할 수있는 더 많은 솔루션이 있습니다 : http://stackoverflow.com/questions/1253459/mysql-error-1452-cannot-add-or-update-a-child-row- a-foreign-key-constraint-fa? rq = 1 – jbutler483

답변

0

asta에 삽입하려고 시도하는 동안 Asta이라는 테이블을 만들고 있습니다. 나는 MySQL에 익숙하지 않지만 대소 문자를 구분한다고 생각합니다.

다른 오타가있을 수 있지만 어쨌든 그 중 하나입니다. 오타가 원인 일 수 있습니다.

+0

변경하려고했지만 동일한 결과를 얻습니다. – Evinrude

관련 문제