Bonjour,
J'ai une base de données avec une table STOCK et une table ARTICLE (un stock contient des articles évidemment).
Admettons que l'on puisse être soit un administrateur soit un utilisateur :
- L'utilisateur ne doit pouvoir supprimer un stock que s'il ne contient plus d'articles (<=> clause ON DELETE NO ACTION sur la table table stock).
- L'admin doit pouvoir supprimer un stock même s'il contient encore des articles (<=> clause ON DELETE CASCADE sur la table stock).
Y a-t-il un moyen de changer la clause dynamiquement ? Je ne pense pas qu'exécuter un ALTER TABLE ON DELETE ... à chaque fois qu'un admin ou un utilisateur veulent supprimer un stock soit une bonne idée, car on touche à la structure de la BDD alors qu'on est censé seulement l'utiliser, je trouve cela un peu dangereux.
Y a-t-il un autre moyen ? Est-ce qu'il faut vérifier manuellement que le stock ne contient plus d'article (sachant qu'en pratique j'ai beaucoup plus de tables reliées à STOCK) ?
Est-ce qu'il existe d'autres manières en SQL d'obtenir ce résultat ?
Partager