Merci nautilbleu pour ta réponse,

Pour le PhpName, c'était un test, puisque cela ne marchait pas
auparavant :D

Bien vu pour l'InnoDB :D

Le fichier YAML ci-dessus (en modifiant "foreignTable: Motcle" par
"foreignTable: motcle") donne le SQL ci-dessous.
Il y a bien les index ?
Sinon dans PhpMyAdmin un "DELETE motcle_lien" ne supprime pas les
lignes correspondantes dans la table "motcle", j'ai donc raté
quelquechose, suis-je stupide ?

CREATE TABLE `motcle`
(
        `id` INTEGER  NOT NULL AUTO_INCREMENT,
        `mot` VARCHAR(50),
        PRIMARY KEY (`id`)
)Type=InnoDB;


CREATE TABLE `motcle_lien`
(
        `id` INTEGER  NOT NULL AUTO_INCREMENT,
        `motcle_id` INTEGER,
        `lien_id` INTEGER,
        `classement` TINYINT,
        PRIMARY KEY (`id`),
        INDEX `motcle_lien_FI_1` (`motcle_id`),
        CONSTRAINT `motcle_lien_FK_1`
                FOREIGN KEY (`motcle_id`)
                REFERENCES `motcle` (`id`)
                ON DELETE CASCADE,
        INDEX `motcle_lien_FI_2` (`lien_id`),
        CONSTRAINT `motcle_lien_FK_2`
                FOREIGN KEY (`lien_id`)
                REFERENCES `lien` (`id`)
)Type=InnoDB;



On 22 mai, 16:34, nautilebleu <[EMAIL PROTECTED]> wrote:
> Si ta table est en InnoDB, tu n'as pas besoin d'émuler: MySQL le fera
> tout seul !
>
> Il me semble que dans le schema, il faut donner comme nom de
> foreignTable le nom de la table et pas le phpName (càd dans ton cas:
> motcle et pas Motcle) Il faut aussi des index dans la definition de la
> jointure.
>
> Nautile
>
> On 22 mai, 15:32, xescorp <[EMAIL PROTECTED]> wrote:
>
> > J'ai l'impression d'avoir tout fait pour que l'émulation d'On Delete
> > Cascade passe sous Mysql.
>
> > 1- J'ai ajouté dans propel.ini la ligne :
> > propel.emulateForeignKeyConstraints = true
>
> > 2- Dans mon schema.yml, j'ai ajouté { type: integer, foreignTable:
> > Motcle, foreignReference: id, onDelete: cascade } à ma clé étrangère :
>
> > propel:
> >   motcle:
> >     _attributes:          { phpName: Motcle }
> >     id:
> >     mot:                  varchar(50)
>
> >   motcle_lien:
> >     _attributes:          { phpName: MotcleLien }
> >     id:
> >     motcle_id:            { type: integer, foreignTable: Motcle,
> > foreignReference: id, onDelete: cascade }
> >     lien_id:
> >     classement:           tinyint
>
> > 3- J'ai fait mon "symfony propel-build-all-load fo"
>
> > 4- Cependant quand je fais mon $motcleLienDelete->delete(); , les
> > infos de la table "motcle" ne sont pas supprimés.
>
> > Je n'ai rien trouvé d'autres de concluant sur le Forum. Ai-je raté
> > quelquechose ?


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à