다음과 같은 두 가지 유형의 MYSQL 생성 열이 있습니다. -
가상 생성 열
이름에서 알 수 있듯이 이러한 종류의 생성 열은 디스크 공간을 차지하지 않습니다. '가상'이라는 키워드를 사용하거나 사용하지 않고 생성할 수 있습니다. 이해를 돕기 위해 다음 예에서 설명합니다. -
예시
mysql> Create table triangle(SideA DOUBLE, SideB DOUBLE, SideC DOUBLE AS (SQRT(SideA * SideB + SideB * SideB))); Query OK, 0 rows affected (0.44 sec) mysql> Describe Triangle; +-------+--------+------+-----+---------+-------------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------+------+-----+---------+-------------------+ | SideA | double | YES | | NULL | | | SideB | double | YES | | NULL | | | SideC | double | YES | | NULL | VIRTUAL GENERATED | +-------+--------+------+-----+---------+-------------------+ 3 rows in set (0.00 sec)
위의 설명은 SideC 열이 가상으로 생성된 열임을 나타냅니다.
저장된 생성 열
이름에서 알 수 있듯이 이러한 종류의 생성 열은 디스크 공간을 차지합니다. '저장'이라는 키워드를 사용하여 생성할 수 있습니다. 이해를 돕기 위해 다음 예에서 설명합니다. -
예시
mysql> Create table triangle_stored(SideA DOUBLE, SideB DOUBLE, SideC DOUBLE AS (SQRT(SideA * SideB + SideB * SideB)) STORED); Query OK, 0 rows affected (0.47 sec) mysql> Describe triangle_stored; +-------+--------+------+-----+---------+------------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------+------+-----+---------+------------------+ | SideA | double | YES | | NULL | | | SideB | double | YES | | NULL | | | SideC | double | YES | | NULL | STORED GENERATED | +-------+--------+------+-----+---------+------------------+ 3 rows in set (0.00 sec)
위의 설명은 SideC 열이 저장된 생성 열임을 나타냅니다.