sql >> Databáze >  >> RDS >> Mysql

Sloupec vypočítaný z jiného sloupce?

Generated Column je jedním z dobrých přístupů pro verzi MySql, která je 5.7.6 a vyšší.

Existují dva druhy generovaných sloupců:

  • Virtuální (výchozí) – sloupec bude vypočítán za běhu, když je arecord načten z tabulky
  • Uloženo – sloupec bude vypočítán při zápisu/aktualizaci nového záznamu v tabulce

Oba typy mohou mít omezení NOT NULL, ale součástí indexu může být pouze uložený vygenerovaný sloupec.

Pro aktuální případ použijeme uložený vygenerovaný sloupec. Pro implementaci jsem uvážil, že obě hodnoty potřebné pro výpočet jsou uvedeny v tabulce

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

částka se automaticky objeví v tabulce a můžete k ní přistupovat přímo, mějte také na paměti, že kdykoli aktualizujete některý ze sloupců, aktualizuje se také částka.



  1. Instalace MariaDB 10.1 v Debian Jessie a spouštění různých dotazů MariaDB

  2. Jak zjistím, které tabulky odkazují na danou tabulku v Oracle SQL Developer?

  3. Jak získat včerejší datum v T-SQL

  4. Dokumentace Oracle