Ciao a tutti, allora:
ho due tabelle, img_prod e prodotti
CREATE TABLE `prodotti` (
`id` int(6) unsigned NOT NULL auto_increment,
`nome` varchar(255) default NULL,
`descrizione` text,
`data_prod` date default NULL,
`data_mod` datetime default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `img_prod` (
`Id` int(6) unsigned NOT NULL auto_increment,
`id_prod` int(6) unsigned NOT NULL default '0',
`image` mediumblob,
PRIMARY KEY (`Id`),
KEY `id_prod` (`id_prod`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `img_prod`
ADD FOREIGN KEY (`id_prod`) REFERENCES `prodotti` (`id`);
Insomma, ho ste due tabelle innodb con un costraint: i prodotti hanno n immagini, e il legame è id_prod che è uguale a prodotti.id .
Perchè caspita, se faccio "DELETE FROM prodotti WHERE prodotti.id=5 CASCADE" (ovviamente esiste un prodotto con id = 5) mi dà errore 1064 , sintassi errata nell'utilizzo di CASCADE ?![]()