Bonjour,

Soit les tables suivantes :
te_personne_prs (prs_id, prs_nom)
th_personne_physique_pph (pph_id_personne, pph_nom_usuel, pph_id_civilite)
th_personne_morale_pmr (pmr_id_personne, pmr_raison_sociale...)

Les tables th_* héritent de te_personne_prs.
Je crée des procédures pour enregistrer directement les personnes physiques et morales qui créent la te_personne_prs mère.
Je voudrais empêcher la création directe d'une te_personne_prs. J'ai pensé à un TRIGGER AFTER INSERT qui contrôlerait qu'il y a bien une th_personne_physique ou une th_personne_morale correspondante et qui, sinon, annulerait l'insertion.

1) D'après mes petites recherches, on ne peut pas faire de ROLLBACK dans un trigger chez MySQL. Comment faire alors pour annuler l'insertion ?
2) Est-ce que ce que je souhaite faire est possible ?
C'est à dire :
Procédure de création d'une personne physique (ou morale) :
-- start transaction
-- création d'une te_personne_prs
-- création de la personne physique (ou morale) en réutilisant l'id de la personne
-- si erreur sur une clé étrangère dans la personne physique (ou morale) ROLLBACK
-- sinon COMMIT

Et ma supposition dans la création du trigger AFTER INSERT sur te_personne_prs serait qu'il n'opère qu'après le COMMIT de la procédure de création d'une personne physique (ou morale). Est-ce bien comme ça que ça pourrait fonctionner ?