PDA

View Full Version : mysql: ON DELETE SET DEFAULT


smok
01-02-2005, 14:43
Ciao a tutti! Sono riuscito finalmente ad installare mysql 4.1 in modo che mi supporti gli InnoDB e quindi mi permetta di usare le foreign keys, solo che le funzioni ON DELETE SET DEFAULT o SET NULL non funzionano. Se ad es creo una tabella:

CREATE TABLE `comitati` (
`comitatoID` int(11) NOT NULL auto_increment,
`Comitato` varchar(50) NOT NULL default '',
PRIMARY KEY (`comitatoID`),
UNIQUE KEY `Comitato` (`Comitato`)
) TYPE=InnoDB;

e poi voglio creare questa che ha una foreign key:

CREATE TABLE `gruppi` (
`GruppoID` int(11) NOT NULL auto_increment,
`comitatoID` int(11) NOT NULL default '0',
`Gruppo` varchar(40) NOT NULL default '',
INDEX (comitatoID),
PRIMARY KEY (`GruppoID`,`comitatoID`),
FOREIGN KEY (comitatoID) REFERENCES comitati (comitatoID) ON DELETE SET DEFAULT,
UNIQUE KEY `Gruppo` (`Gruppo`)
) TYPE=InnoDB;

NON me la fa creare con SET DEFAULT o SET NULL, mentre se metto CASCADE va bene!
Da che dipende secondo voi? Grazie ciao!

kingv
01-02-2005, 15:26
InnoDB non supporta definizioni di tabelle con la clausola ON DELETE SET DEFAULT

ON DELETE SET NULL invece e' implementato, che versione usi?

smok
01-02-2005, 17:38
ho messo mysql 4.1.9..

PS: Intanto grazie per avermi detto che non funziona il default senno' sarei impazzito provando e riprovando! :)