Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Kolumna obliczona z innej kolumny?

Wygenerowana kolumna jest jednym z dobrych podejść dla wersji MySql, która jest 5.7.6 i nowsza.

Istnieją dwa rodzaje wygenerowanych kolumn:

  • Wirtualny (domyślnie) - kolumna zostanie obliczona w locie, gdy arecord zostanie odczytany z tabeli
  • Przechowywane - kolumna zostanie obliczona, gdy nowy rekord zostanie zapisany/zaktualizowany w tabeli

Oba typy mogą mieć ograniczenia NOT NULL, ale tylko przechowywana wygenerowana kolumna może być częścią indeksu.

W obecnym przypadku użyjemy zapisanej wygenerowanej kolumny. Aby wdrożyć, wziąłem pod uwagę, że obie wartości wymagane do obliczeń znajdują się w tabeli

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

kwota automatycznie pojawi się w tabeli i będziesz mieć do niej bezpośredni dostęp, pamiętaj również, że za każdym razem, gdy zaktualizujesz którąkolwiek z kolumn, kwota również zostanie zaktualizowana.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę policzyć liczbę wierszy zwróconych przez zapytanie MySQL?

  2. Czy w MySQL powinienem używać danych typu datetime czy timestamp?

  3. Jak wykonać polecenie MySQL ze skryptu powłoki?

  4. Używanie Pythona i MySQL w procesie ETL

  5. Praca z bazami danych MySQL cPanel