Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine Spalte automatisch basierend auf einer anderen Spalte in MySQL berechnen?

Wie kann ich eine Spalte automatisch basierend auf einer anderen Spalte in MySQL berechnen?

DDD
Freigeben: 2025-01-17 07:51:18
Original
692 Leute haben es durchsucht

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

Eine Spalte automatisch basierend auf einer anderen Spalte in MySQL berechnen

In der Welt der Datenbankprogrammierung sind Tabellen der Grundstein der Datenspeicherung, aber manchmal ist es notwendig, zusätzliche Informationen aus vorhandenen Spalten abzuleiten. Hier kommen berechnete Spalten ins Spiel, die eine Möglichkeit bieten, neue Spalten zu erstellen, deren Werte basierend auf einer anderen Spalte automatisch aktualisiert werden.

Datenbankeinstellungen

Betrachten Sie das folgende Formular:

<code>id | value
--------------
1     6
2     70</code>
Nach dem Login kopieren

Problembeschreibung

Die Aufgabe besteht darin, eine Spalte namens „berechnet“ hinzuzufügen, die die Hälfte der Spalte „Wert“ darstellt. Diese berechnete Spalte sollte automatisch aktualisiert werden, wenn sich die Spalte „Wert“ ändert.

Lösung: Spalten generieren

MySQL 5.7.6 und höher führt eine Funktion namens „generierte Spalten“ ein. Diese Spalten ermöglichen dynamische Berechnungen basierend auf vorhandenen Spalten, ähnlich wie Ansichten, jedoch als integraler Bestandteil der Tabelle.

Es gibt zwei Arten von generierten Spalten:

  • Virtuell (Standard): Wird im laufenden Betrieb berechnet, wenn Datensätze aus der Tabelle gelesen werden.
  • Speicher: Wird berechnet, wenn ein neuer Datensatz in die Tabelle eingefügt oder aktualisiert wird.

Leistung

In diesem Beispiel verwenden wir eine gespeicherte generierte Spalte. Hier ist die SQL-Anweisung zum Hinzufügen:

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

Dadurch wird eine neue Spalte namens „berechnet“ mit dem halben Wert der Spalte „Wert“ jeder Zeile erstellt.

Vorteile und Hinweise

Das Generieren von Spalten hat folgende Vorteile:

  • Automatische Aktualisierung: Berechnete Spalten werden automatisch aktualisiert, wenn sich die Quellspalte ändert, um sicherzustellen, dass der Wert immer korrekt ist.
  • Indexierbar: Gespeicherte generierte Spalten können als Teil des Indexes verwendet werden, wodurch die Abfrageleistung verbessert wird.
  • NOT NULL-Einschränkung: Sowohl virtuelle als auch gespeicherte generierte Spalten können eine NOT NULL-Einschränkung haben, um die Datenintegrität sicherzustellen.

Beispiel

Nach dem Hinzufügen der berechneten Spalte sieht die Tabelle folgendermaßen aus:

<code>id | value | calculated
-----------------------
1     6       3
2     70      35</code>
Nach dem Login kopieren

Fazit

Generierte Spalten bieten eine leistungsstarke Möglichkeit, berechnete Spalten zu einer Tabelle hinzuzufügen. Durch die Nutzung der „gespeicherten“ Option wird sichergestellt, dass berechnete Spalten automatisch aktualisiert werden und indiziert werden können, was für mehr Flexibilität und Effizienz bei der Datenverwaltung sorgt.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Spalte automatisch basierend auf einer anderen Spalte in MySQL berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage