Maison >base de données >tutoriel mysql >Comment puis-je calculer automatiquement une colonne basée sur une autre colonne dans MySQL ?

Comment puis-je calculer automatiquement une colonne basée sur une autre colonne dans MySQL ?

DDD
DDDoriginal
2025-01-17 07:51:18693parcourir

How Can I Automatically Calculate a Column Based on Another Column in MySQL?

Calculer automatiquement une colonne en fonction d'une autre colonne dans MySQL

Dans le monde de la programmation de bases de données, les tables sont la pierre angulaire du stockage des données, mais il est parfois nécessaire de dériver des informations supplémentaires à partir des colonnes existantes. C'est là qu'interviennent les colonnes calculées, offrant un moyen de créer de nouvelles colonnes dont les valeurs sont automatiquement mises à jour en fonction d'une autre colonne.

Paramètres de la base de données

Considérez la forme suivante :

<code>id | value
--------------
1     6
2     70</code>

Énoncé du problème

La tâche consiste à ajouter une colonne appelée « calculé » qui correspond à la moitié de la colonne « valeur ». Cette colonne calculée doit être automatiquement mise à jour lorsque la colonne « valeur » change.

Solution : Générer des colonnes

MySQL 5.7.6 et versions ultérieures introduisent une fonctionnalité appelée « colonnes générées ». Ces colonnes permettent des calculs dynamiques basés sur des colonnes existantes, similaires aux vues, mais faisant partie intégrante du tableau.

Il existe deux types de colonnes générées :

  • Virtuel (par défaut) : Calculé à la volée lors de la lecture des enregistrements de la table.
  • Stockage : Calculé lorsqu'un nouvel enregistrement est inséré ou mis à jour dans le tableau.

Réussite

Dans cet exemple, nous utiliserons une colonne générée stockée. Voici l'instruction SQL pour l'ajouter :

<code>ALTER TABLE table_name ADD COLUMN calculated AS (value / 2) STORED;</code>

Cela créera une nouvelle colonne appelée « calculé » avec la moitié de la valeur de la colonne « valeur » de chaque ligne.

Avantages et remarques

La génération de colonnes présente les avantages suivants :

  • Mise à jour automatique : Les colonnes calculées sont automatiquement mises à jour lorsque la colonne source change, garantissant ainsi que la valeur est toujours exacte.
  • Indexable : Les colonnes générées stockées peuvent être utilisées dans le cadre de l'index, améliorant ainsi les performances des requêtes.
  • Restriction NOT NULL : Les colonnes générées virtuelles et stockées peuvent avoir une restriction NOT NULL, garantissant l'intégrité des données.

Exemple

Après avoir ajouté la colonne calculée, le tableau ressemblera à ceci :

<code>id | value | calculated
-----------------------
1     6       3
2     70      35</code>

Conclusion

Les colonnes générées constituent un moyen puissant d'ajouter des colonnes calculées à un tableau. En tirant parti de l'option « stockée », il garantit que les colonnes calculées sont automatiquement mises à jour et peuvent être indexées, offrant ainsi une plus grande flexibilité et efficacité dans la gestion des données.

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!

Déclaration:
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