sql >> Database >  >> RDS >> Mysql

Kolom berekend uit een andere kolom?

Generated Column is een van de goede benaderingen voor MySql-versie die 5.7.6 en hoger is.

Er zijn twee soorten gegenereerde kolommen:

  • Virtueel (standaard) - kolom wordt direct berekend wanneer een record uit een tabel wordt gelezen
  • Opgeslagen - kolom wordt berekend wanneer een nieuw record wordt geschreven/bijgewerkt in de tabel

Beide typen kunnen GEEN NULL-beperkingen hebben, maar alleen een opgeslagen gegenereerde kolom kan deel uitmaken van een index.

Voor het huidige geval gaan we de opgeslagen gegenereerde kolom gebruiken. Om te implementeren heb ik overwogen dat beide waarden die nodig zijn voor de berekening aanwezig zijn in 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);

bedrag verschijnt automatisch in de tabel en u hebt er direct toegang toe. Houd er ook rekening mee dat wanneer u een van de kolommen bijwerkt, het bedrag ook wordt bijgewerkt.



  1. SQL Express opstarten vanuit WiX?

  2. Splits een kolom in meerdere rijen

  3. Geef de besturing door aan een specifieke regel met de opdracht Goto Label in PLSQL

  4. Hoe MySQL 8 te installeren met Workbench op Windows 10