2010-04-07 4 views
1

J'essaie d'utiliser CASCADE ON SUPPRIMER dans base de données mysql, mais je ne peux pas le faire fonctionner. Voici mon code:mysql suppression en cascade ne fonctionnent pas

CREATE TABLE sometable 
(
testId CHAR(43), 
blocked BOOL, 
PRIMARY KEY(testId) 
); 

CREATE TABLE p 
( 
testId CHAR(43), 
phrase text, 
source text, 
FOREIGN KEY (testId) REFERENCES sometable (testId) on delete cascade 
); 

CREATE TRIGGER sometable_insert BEFORE INSERT ON `sometable` FOR EACH ROW SET NEW.`testId` =UUID(); 

je puis faites une insertion dans sometable, qui va générer un UUID. Je prends cet UUID et je l'insère dans le tableau p. insert dans p (testid, phrase source) VALUES ('07616f60-424f-11df-871a-b98e9', 'fun', 'test');

Lorsque vous effectuez une suppression de la ligne de rien sometable se passe dans le tableau p. Qu'ai-je manqué ou ce que je suis-je tort

+1

Utilisez-vous InnoDB? – nickf

+0

Peut-être que vous devez définir un index sur la colonne testid dans le tableau p. –

Répondre

1

Ok, trouvé la solution. Je devais préciser le type InnoDB comme ceci:

CREATE TABLE sometable 
(
testId CHAR(43), 
blocked BOOL, 
PRIMARY KEY(testId) 
) type=innodb; 

Merci pour les commentaires

// Jakob

Questions connexes