Maison > base de données > tutoriel mysql > le corps du texte

Comment récupérer la suppression logique MySQL

(*-*)浩
Libérer: 2020-09-16 11:56:59
original
4292 Les gens l'ont consulté

Dans les projets, vous rencontrerez généralement cette situation : la suppression logique et les associations multiples ne sont pas supprimées

Suppression logique (suppression logicielle) : La suppression logique consiste à mettre une marque de suppression sur les données à supprimer, généralement Utilisez un champ is_deleted pour indiquer si l'enregistrement de ligne a été supprimé (ou utilisez un champ d'état pour représenter le statut dit "supprimé"). Logiquement, les données sont supprimées, mais les données elles-mêmes existent toujours.

Cours recommandés : Tutoriel MySQL

Comment récupérer la suppression logique MySQL

a été supprimé de la page d'accueil et n'est pas affiché. non supprimé de la base de données, juste basé sur l'idée d'un champ d'état, 0 pour démarrer, 1 pour désactiver.

La suppression logique consiste donc simplement à modifier un champ nommé statut pour déterminer si la page frontale est affichée. Les données elles-mêmes n'ont pas été supprimées. Si vous souhaitez les restaurer, il vous suffit de modifier le statut. champ en arrière.

Idée :

Lors de l'écriture d'une requête SQL en XML, ajoutez une condition supplémentaire, le champ d'état dans la bibliothèque

SELECT * FROM md_drainage_basin
<where>
  <if test="basinName != null"> and  basin_name LIKE concat('%',#{basinName},'%')</if>
  <if test="state != null">AND state = #{state}</if>
</where>
ORDER BY sort_order
Copier après la connexion

Puis, lorsque nous fournissons les données au front-end page, nous devons le faire nous-mêmes. Effectuez l'opération par défaut dans le code Java, car le front-end ne transmettra pas de code de statut dans la requête. L'arrière-plan génère

mdDrainageBasin.setState(0);
List<MdDrainageBasin> list = mdDrainageBasinMapper.findByQuery(mdDrainageBasin);
Copier après la connexion

par défaut et définit le statut. 0 à la classe d'entité, puis exécute la requête. De cette façon, le front-end ne voit que les données avec le statut 0

La suppression logique consiste à mettre à jour le code d'état à 1 et à appeler la mise à jour au lieu de la suppression. Cependant, compte tenu de la relation multi-table, telle que suspendue sous le bassin versant. Si un bassin versant est logiquement supprimé, le système d'eau ci-dessous sera également logiquement supprimé et non affiché. À ce stade, on peut juger que s'il existe un correspondant. système d'eau sous le bassin versant, il ne sera pas supprimé, sinon il sera supprimé

MdDrainageBasin mdDrainageBasin = mdDrainageBasinService.findById(id);
List<MdWaterSystem> list = mdWaterSystemMapper.findByWater(mdDrainageBasin.getBasinCode());
if (list.size() > 0) {
    return ResponseMsgUtil.failure();
} else {
    mdDrainageBasin.setState(1);
    mdDrainageBasinService.update(mdDrainageBasin);
    return ResponseMsgUtil.success(mdDrainageBasin);
}
Copier après la connexion

Interrogez quel bassin versant et combien de systèmes d'eau il y a sous ce bassin versant en fonction de l'ID transmis depuis le front-end . S'il y a un système d'eau, ne le supprimez pas. S'il n'y a pas de système d'eau, supprimez-le

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!