Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에 STORED GENERATED 컬럼을 추가하는 방법

MySQL 테이블에 STORED GENERATED COLUMN(저장 생성 컬럼)을 추가하려면 일반적인 컬럼 추가 문법을 그대로 사용하면 됩니다. 다만 데이터 타입 뒤에 AS(표현식)STORED 키워드를 함께 지정해 주어야 합니다.

문법(Syntax)

ALTER TABLE table_name
ADD COLUMN column_name AS(expression) STORED;

예제(Example)

다음 예제는 employee_data_stored 테이블에 First_nameLast_name 값을 공백으로 연결한 FULLName이라는 저장 생성 컬럼을 추가하는 과정입니다.

mysql> ALTER TABLE employee_data_stored ADD COLUMN FULLName Varchar(200) AS (CONCAT_WS(" ", 'First_name','Last_name')) STORED;
Query OK, 2 rows affected (1.23 sec)
Records: 2 Duplicates: 0 Warnings: 0

쿼리가 성공적으로 실행되었습니다. 이제 DESCRIBE 명령으로 테이블 구조를 확인해 보겠습니다.

mysql> Describe employee_data_stored;
+------------+--------------+------+-----+---------+------------------+
| Field      | Type         | Null | Key | Default | Extra            |
+------------+--------------+------+-----+---------+------------------+
| ID         | int(11)      | NO   | PRI | NULL    | auto_increment   |
| First_name | varchar(50)  | NO   |     | NULL    |                  |
| Last_name  | varchar(50)  | NO   |     | NULL    |                  |
| FULL_NAME  | varchar(90)  | YES  |     | NULL    | STORED GENERATED |
| FULLName   | varchar(200) | YES  |     | NULL    | STORED GENERATED |
+------------+--------------+------+-----+---------+------------------+
5 rows in set (0.00 sec)

출력 결과의 Extra 열에 STORED GENERATED라고 표시되어 있는 것을 확인할 수 있습니다. 이는 해당 컬럼들이 실제 값으로 디스크에 저장되는 생성 컬럼임을 의미합니다.

STORED와 VIRTUAL의 차이점

참고로 MySQL의 생성 컬럼은 두 가지 유형이 있습니다. STORED 타입은 행이 삽입되거나 수정될 때 계산된 값을 물리적으로 저장하여 읽기 속도가 빠르지만 저장 공간을 차지합니다. 반면 VIRTUAL 타입은 값을 저장하지 않고 읽을 때마다 동적으로 계산하므로 저장 공간은 절약되지만 조회 시 약간의 연산 비용이 발생합니다. 자주 조회되는 컬럼이라면 위 예제처럼 STORED 방식을 사용하는 것이 좋습니다.