Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316

    #error 1452 nel popolamento db

    salve a tutti, sto facendo un progetto per l'università. ho creato le varie tabelle con relative chiavi. Il problema c'è quando provo ad inserire dati nelle tabelle. mi compare questo errore e non riesco a risolverlo:

    #1452 - Cannot add or update a child row: a foreign key constraint fails (`cc`.`cantante`, CONSTRAINT `cantante_ibfk_1` FOREIGN KEY (`codCanzone`) REFERENCES `canzone` (`CodCanzone`) ON DELETE NO ACTION ON UPDATE NO ACTION)


    vi posto il codice del db e vi ringrazio in anticipo se potrete aiutarmi

    L.


    codice:
    -- Struttura della tabella `admin`
    --
    
    CREATE TABLE IF NOT EXISTS `admin` (
      `utente` varchar(20) NOT NULL,
      `password` varchar(20) NOT NULL,
      `nome` varchar(20) NOT NULL,
      `cognome` varchar(20) NOT NULL,
      `dataN` date NOT NULL,
      `ruolo` varchar(20) NOT NULL,
      PRIMARY KEY (`utente`,`password`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    --
    -- Dump dei dati per la tabella `admin`
    --
    
    INSERT INTO `admin` (`utente`, `password`, `nome`, `cognome`, `dataN`, `ruolo`) VALUES
    ('Admin', 'admin', 'Marco', 'Rossi', '1967-02-05', 'Amministratore'),
    ('contabile', 'contabile', 'Gianni', 'Carro', '1978-05-21', 'contabile'),
    ('Impiegata', 'impiegata', 'Laura', 'Bizzi', '1982-12-09', 'impiegata'),
    ('Impiegato', 'impiegato', 'Luca', 'Cristoforo', '1985-11-03', 'impiegato');
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `cantante`
    --
    
    CREATE TABLE IF NOT EXISTS `cantante` (
      `NomeArte` varchar(20) NOT NULL,
      `Nome` varchar(20) NOT NULL,
      `Cognome` varchar(20) NOT NULL,
      `Sesso` varchar(10) NOT NULL,
      `DataN` date NOT NULL,
      `codCanzone` int(11) NOT NULL,
      `codEvento` int(11) NOT NULL,
      `valutazSingolo` float DEFAULT NULL,
      `tipo` tinyint(1) NOT NULL DEFAULT '0',
      PRIMARY KEY (`NomeArte`),
      KEY `codCanzone` (`codCanzone`),
      KEY `codEvento` (`codEvento`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `canzone`
    --
    
    CREATE TABLE IF NOT EXISTS `canzone` (
      `CodCanzone` int(11) NOT NULL,
      `Titolo` varchar(20) NOT NULL,
      `durata` float NOT NULL,
      `Autore` varchar(20) NOT NULL,
      `codEvento` int(11) NOT NULL,
      `codSerata` int(11) NOT NULL,
      PRIMARY KEY (`CodCanzone`),
      KEY `codEvento` (`codEvento`),
      KEY `codSerata` (`codSerata`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `evento`
    --
    
    CREATE TABLE IF NOT EXISTS `evento` (
      `codEvento` int(11) NOT NULL,
      `nome` varchar(20) NOT NULL,
      `dataInizio` date NOT NULL,
      `dataFine` date NOT NULL,
      `presentatore` varchar(20) NOT NULL,
      `maxPezzi` int(11) NOT NULL,
      `numeroSerate` int(11) NOT NULL,
      PRIMARY KEY (`codEvento`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    --
    -- Dump dei dati per la tabella `evento`
    --
    
    INSERT INTO `evento` (`codEvento`, `nome`, `dataInizio`, `dataFine`, `presentatore`, `maxPezzi`, `numeroSerate`) VALUES
    (1, 'Evento 1', '1999-02-03', '1999-02-07', 'Fabio Fazio', 20, 5),
    (2, 'Evento 2', '2001-08-15', '2001-08-17', 'Gerry Scotti', 15, 3),
    (3, 'Evento 3', '2005-11-20', '2005-11-26', 'Massimo Giletti', 35, 7);
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `gruppo`
    --
    
    CREATE TABLE IF NOT EXISTS `gruppo` (
      `NomeGruppo` varchar(20) NOT NULL,
      `NumComponenti` int(11) NOT NULL,
      `nomeArteCantante` varchar(20) DEFAULT NULL,
      `codCanzone` int(11) NOT NULL,
      PRIMARY KEY (`NomeGruppo`),
      KEY `nomeArteCantante` (`nomeArteCantante`),
      KEY `codCanzone` (`codCanzone`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    -- --------------------------------------------------------
    
    --
    -- Struttura della tabella `serata`
    --
    
    CREATE TABLE IF NOT EXISTS `serata` (
      `CodSerata` int(11) NOT NULL,
      `Orario` time NOT NULL,
      `codEvento` int(11) NOT NULL,
      `codCanzone` int(11) NOT NULL,
      `numVotanti` int(11) DEFAULT NULL,
      `valuPubblico` float DEFAULT NULL,
      `percentuale` float DEFAULT NULL,
      `valuTotEsperti` float NOT NULL,
      PRIMARY KEY (`CodSerata`),
      KEY `codEvento` (`codEvento`),
      KEY `codCanzone` (`codCanzone`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    --
    -- Limiti per le tabelle scaricate
    --
    
    --
    -- Limiti per la tabella `cantante`
    --
    ALTER TABLE `cantante`
      ADD CONSTRAINT `cantante_ibfk_2` FOREIGN KEY (`codEvento`) REFERENCES `evento` (`codEvento`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `cantante_ibfk_1` FOREIGN KEY (`codCanzone`) REFERENCES `canzone` (`CodCanzone`) ON DELETE NO ACTION ON UPDATE NO ACTION;
    
    --
    -- Limiti per la tabella `canzone`
    --
    ALTER TABLE `canzone`
      ADD CONSTRAINT `canzone_ibfk_2` FOREIGN KEY (`codSerata`) REFERENCES `canzone` (`codEvento`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `canzone_ibfk_1` FOREIGN KEY (`codEvento`) REFERENCES `evento` (`codEvento`) ON DELETE NO ACTION ON UPDATE NO ACTION;
    
    --
    -- Limiti per la tabella `gruppo`
    --
    ALTER TABLE `gruppo`
      ADD CONSTRAINT `gruppo_ibfk_2` FOREIGN KEY (`codCanzone`) REFERENCES `canzone` (`CodCanzone`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `gruppo_ibfk_1` FOREIGN KEY (`nomeArteCantante`) REFERENCES `cantante` (`NomeArte`) ON DELETE NO ACTION ON UPDATE NO ACTION;
    
    --
    -- Limiti per la tabella `serata`
    --
    ALTER TABLE `serata`
      ADD CONSTRAINT `serata_ibfk_2` FOREIGN KEY (`codCanzone`) REFERENCES `canzone` (`CodCanzone`) ON DELETE NO ACTION ON UPDATE NO ACTION,
      ADD CONSTRAINT `serata_ibfk_1` FOREIGN KEY (`codEvento`) REFERENCES `evento` (`codEvento`) ON DELETE NO ACTION ON UPDATE NO ACTION;

  2. #2
    Utente di HTML.it L'avatar di leaf
    Registrato dal
    Oct 2012
    Messaggi
    316
    up!

  3. #3
    Ciao,

    Ma per quale motivo non metti subito le foreign key in fase di creazione delle tabelle e le metti dopo con un alter table?

    Gia che ci sei mettile subito, facendo attenzione a rispettare un ordine lecito. Quindi crea prime le tabelle base che non hanno chiavi esterne e poi le altre.

    Forse riorganizzando il tutto il tuo errore si risolvera' da solo...

  4. #4
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.