codice:
CREATE TABLE `privato` (
`p_ID` int(11) NOT NULL auto_increment,
PRIMARY KEY (`p_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Struttura della tabella `cv`
--
CREATE TABLE `cv` (
`cv_candidato` int(11) NOT NULL,
`cv_nome` varchar(30) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`cv_candidato`,`cv_nome`),
FOREIGN KEY (`cv_candidato`) REFERENCES `privato` (`p_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Struttura della tabella `datorelavoro`
--
CREATE TABLE `datorelavoro` (
`dat_ID` int(11) NOT NULL,
`dat_privato` int(11) NOT NULL,
PRIMARY KEY (`dat_ID`,`dat_privato`),
FOREIGN KEY (`dat_privato`) REFERENCES `privato` (`p_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
--
-- Struttura della tabella `esperienza`
--
CREATE TABLE `esperienza` (
`e_datainizio` date NOT NULL,
`e_cvowner` int(11) NOT NULL,
`e_cvnome` varchar(30) NOT NULL,
`e_datoreid` int(11) NOT NULL,
PRIMARY KEY (`e_datainizio`,`e_cvowner`,`e_cvnome`),
FOREIGN KEY (`e_cvowner`,`e_cvnome`) REFERENCES `cv` (`cv_candidato`,`cv_nome`) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (`e_datoreid`,`e_cvowner`) REFERENCES `datorelavoro` (`dat_ID`,`dat_privato`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- --------------------------------------------------------
Ho ricambiato come hai detto tu.
In più ho modificato una foreign key in esperienza.
Ora però ho un altro problema: se eseguo una REPLACE su una tupla di datorelavoro e ho una tupla di esperienza che è in relazione con tale datore ottengo il seguente errore:
codice:
Cannot delete or update a parent row: a foreign key constraint fails (`lavora/esperienza`, CONSTRAINT
`esperienza_ibfk_2` FOREIGN KEY (`e_datoreid`, `e_cvowner`) REFERENCES `datorelavoro` (`dat_ID`, `dat_privato
`))