Modification en cascade

Par babacar84, il y a 12 ans


Base de données MySQL

Bonjour,
j'ai deux tables service(id_service,libelle,statut) et agent(id_agent,nom,prenom,id_service,statut)
les valeurs des champs statut présents dans les deux tables n'ont que deux valeurs 0 ou 1 (0 = inactif et 1 = actif)
je veux que quand on met à jour le champ statut de la table service (c'est à dire si on le met à 0), le champ statut de la table agent soit automatiquement mis à 0 aussi

j'ai essayé avec ce code mais ça ne passe pas:

alter table agent add constraint fk_agentservice FOREIGN KEY (id_service,statut) REFERENCES service(id_service,statut) ON UPDATE CASCADE

toutes les deux table sont en INNODB

2 réponses

yceoshda, il y a 12 ans

Bonjour,

Utilise un trigger plutot qu'une ForeignKey pour ce genre de chose.
Mais je rejoins aussi Pewel sur la pertinence !

Pewel-OutOfNutella, il y a 12 ans

Salut,

Alors après avoir fait quelques recherches, ma question va être toute bête :

as tu réellement besoin de sauvegarder le champ statut dans deux tables différentes alors qu'au final il contient la même donnée ?
Si c'est pour détecter si un agent est en service, ne le laisse que dans agent.