Dieser Artikel veranschaulicht anhand von Beispielen die Verwendung generierter Spalten in MySQL 5.7. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Der Wert einer generierten Spalte wird aus dem Ausdruck in der Spaltendefinition berechnet. MySQL 5.7 unterstützt zwei Typen generierter Spalten: 1. Virtuell generierte Spalte: Der Spaltenwert wird berechnet, wenn Datensätze aus der Tabelle gelesen werden. Eine dauerhafte Speicherung der Daten auf der Festplatte erfolgt nicht. 2. Gespeicherte generierte Spalte: Wenn ein Datensatz in die Tabelle geschrieben wird, wird der Spaltenwert berechnet und als reguläre Spalte auf der Festplatte gespeichert. Daher benötigt virtuell weniger Speicherplatz als gespeichert. Wenn der generierte Spaltentyp nicht angegeben ist, ist der standardmäßig generierte Spaltentyp in MySQL 5.7 virtuell. Die Syntax zum Definieren einer generierten Spalte lautet: col_name data_type [IMMER GENERIERT] AS (Ausdruck) [VIRTUELL | GESPEICHERT] [NICHT NULL | NULL] [EINZIGARTIGER [SCHLÜSSEL]] [[PRIMÄRER] SCHLÜSSEL] [KOMMENTAR 'Zeichenfolge'] Wir erstellen eine Tabelle und legen eines der Felder als generierte Spalte fest. CREATE TABLE-Test ( id INT (11) UNSIGNED NOT NULL AUTO_INCREMENT, chinesisch DOUBLE NOT NULL DEFAULT '0', mathematik DOUBLE NOT NULL DEFAULT '0', englisch DOUBLE NOT NULL DEFAULT '0', Gesamtpunktzahl DOUBLE AS (Chinesisch + Mathematik + Englisch), PRIMÄRSCHLÜSSEL (id) )ENGINE=INNODB STANDARD-CHARSET=utf8mb4; Wir fügen Daten in die Tabelle ein in Test (Chinesisch, Mathematik, Englisch) Werte (66, 72, 54) einfügen; wähle * aus Test; Beachten Sie, dass wir in den generierten Spalten keine Werte manuell angeben können, da dies den FEHLER 3105 auslöst. Wenn Sie den Feldnamen total_score in die Insert-Anweisung aufnehmen möchten, können Sie seinen Wert nur auf DEFAULT setzen. in Test einfügen (Chinesisch, Mathematik, Englisch, Gesamtpunktzahl) Werte (33, 44, 55, STANDARD); Wenn die Tabelle bereits vorhanden ist, können wir mit der Anweisung „Alter Table“ generierte Spalten erstellen, ändern oder löschen. alter table test add column times_score double generiert immer als (Chinesisch * Mathematik * Englisch) gespeichert; Ändern des Datentyps und des Ausdrucks der generierten Spalten alter table test modify column times_score float generiert immer als (Chinesisch * Mathematik * Englisch * 10) gespeichert; Umbenennen der generierten Spalten alter table test change times_score times_score_new float generiert immer als (Chinesisch * Mathematik * Englisch * 10) gespeichert; Generierte Spalten entfernen Tabelle ändern, Test, Spalte „times_score_new“ löschen; Eine virtuelle Spalte kann nicht in eine gespeicherte generierte Spalte geändert werden und umgekehrt. Du kannst es nur zuerst löschen und dann erneut hinzufügen Tabelle ändern, Test, Spalte total_score löschen; alter table test add column total_score double wird immer generiert als (Chinesisch + Mathematik + Englisch) gespeichert; Normale Felder in einer Tabelle können so geändert werden, dass sie gespeicherte generierte Spalten sind, nicht jedoch virtuell generierte Spalten. Tabelle ändern, Test, Spalte ändern, chinesisch, doppelt generiert, immer als (math + 1) gespeichert; Die gespeicherte generierte Spalte kann in ein reguläres Feld mit einem generierten Wert geändert werden Tabellentest ändern, Spalte total_score double ändern; Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: So ändern Sie die Ali-Quelle in Ubuntu 20.04
>>: Beispiele für korrekte Beurteilungsmethoden für Datentypen in JS
Eine kurze Beschreibung der Umgebungsvariablenkon...
Sie können dieses Logo lokal als .rar-Datei speic...
Installieren Sie Jenkins über Yum 1. Installation...
Ich habe kürzlich den Quellcode von Vue studiert ...
Das spezifische upgrade -Skript lautet wie folgt:...
So verwenden Sie den MySQL-Autorisierungsbefehl „...
In diesem Artikel werden die Installations- und K...
Oft möchten wir in Linux eine Datei finden, wisse...
Inhaltsverzeichnis 1. Mathematische Funktionen 2....
Hintergrund Zu Beginn meines Japanisch-Lernens fi...
1. Einleitung Zunächst müssen wir eine Frage bean...
1. Die Eigenschaft „vertical-align“ erzielt folge...
1. Installieren Sie mutt sudo apt-get install mut...
Inhaltsverzeichnis 1. DOM & BOM bezogen 1. Üb...
Binäre MySQL-Installationsmethode Laden Sie mysql...