sql >> Database teknologi >  >> RDS >> Mysql

Kolonne beregnet fra en anden kolonne?

Generated Column er en af ​​de gode tilgange til MySql-versionen, som er 5.7.6 og nyere.

Der er to slags genererede kolonner:

  • Virtuel (standard) - kolonne vil blive beregnet med det samme, når arecord læses fra en tabel
  • Lagret - kolonne vil blive beregnet, når en ny post skrives/opdateres i tabellen

Begge typer kan have IKKE NULL-begrænsninger, men kun en lagret genereret kolonne kan være en del af et indeks.

For det aktuelle tilfælde vil vi bruge lagret genereret kolonne. For at implementere har jeg overvejet, at begge de værdier, der kræves til beregning, er til stede i tabel

CREATE TABLE order_details (price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity));

INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);

beløb vil automatisk dukke op i tabellen, og du kan få direkte adgang til det. Bemærk også, at når du vil opdatere nogen af ​​kolonnerne, vil beløbet også blive opdateret.



  1. Automatiser databasetestgendannelse i SQL Server

  2. Sådan ændres kompatibilitetsniveauet for en database med T-SQL

  3. Hvordan indsætter man en post og returnerer det nyoprettede ID ved hjælp af en enkelt SqlCommand?

  4. Hvordan pg_sleep_for() virker i PostgreSQL