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 ?

Jan 17, 2025 am 07:51 AM

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>
Copier après la connexion

É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>
Copier après la connexion

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>
Copier après la connexion

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 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

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Réduisez l'utilisation de la mémoire MySQL dans Docker Réduisez l'utilisation de la mémoire MySQL dans Docker Mar 04, 2025 pm 03:52 PM

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Mar 19, 2025 pm 03:51 PM

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée Mar 04, 2025 pm 04:01 PM

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Qu'est-ce que Sqlite? Aperçu complet Qu'est-ce que Sqlite? Aperçu complet Mar 04, 2025 pm 03:55 PM

Qu'est-ce que Sqlite? Aperçu complet

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin) Mar 04, 2025 pm 03:54 PM

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Mar 18, 2025 pm 12:00 PM

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape Mar 04, 2025 pm 03:49 PM

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Mar 18, 2025 pm 12:01 PM

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?

See all articles