Maison > base de données > tutoriel mysql > Comment puis-je calculer efficacement une colonne basée sur d'autres colonnes dans MySQL ?

Comment puis-je calculer efficacement une colonne basée sur d'autres colonnes dans MySQL ?

Linda Hamilton
Libérer: 2025-01-17 07:42:10
original
146 Les gens l'ont consulté

How Can I Efficiently Calculate a Column Based on Other Columns in MySQL?

Comment calculer efficacement des colonnes basées sur d'autres colonnes dans MySQL

MySQL 5.7.6 et supérieur introduit les colonnes générées (Colonnes générées), qui constituent un moyen efficace de calculer automatiquement la valeur des nouvelles colonnes en fonction des colonnes existantes dans la même table. Contrairement aux vues, les colonnes générées font partie de la définition de la table et sont automatiquement mises à jour lorsque les colonnes source changent.

Colonnes générées virtuellement et colonnes générées stockées

Les colonnes générées peuvent être virtuelles ou stockées :

  • Virtuel : Calculé dynamiquement lors de la lecture des enregistrements du tableau.
  • Stocké : Calculé lorsqu'un enregistrement de table est écrit ou mis à jour.

Dans ce cas, stocker une colonne générée est plus approprié car la valeur calculée doit être disponible immédiatement lorsqu'un nouvel enregistrement est inséré ou qu'un enregistrement existant est mis à jour.

Mise en place des colonnes générées grâce au stockage

Supposons qu'un tableau ait deux colonnes : price et quantity, et que nous souhaitions ajouter une nouvelle colonne amount dont la valeur est le produit de price et quantity. Les colonnes générées par le stockage peuvent être créées à l'aide de l'instruction SQL suivante :

<code class="language-sql">CREATE TABLE order_details (
  price DOUBLE,
  quantity INT,
  amount DOUBLE AS (price * quantity) STORED
);</code>
Copier après la connexion

Une fois la colonne créée, amount sera automatiquement calculée et stockée pour chaque ligne du tableau. Toute modification apportée à price ou quantity déclenchera une mise à jour de amount.

Exemple contenant des données de tableau

Après avoir inséré quelques exemples de données :

<code class="language-sql">INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);</code>
Copier après la connexion

Le tableau ressemblera à ceci :

id price quantity amount
1 100 1 100
2 300 4 1200
3 60 8 480

amount Les colonnes seront automatiquement remplies et mises à jour selon les besoins, permettant un accès efficace aux valeurs calculé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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal