>  기사  >  데이터 베이스  >  MySQL GENERATED COLUMN은 무엇이고 테이블 생성 시 어떻게 사용하나요?

MySQL GENERATED COLUMN은 무엇이고 테이블 생성 시 어떻게 사용하나요?

王林
王林앞으로
2023-09-12 18:29:121293검색

什么是 MySQL GENERATED COLUMN 以及如何在创建表时使用它?

기본적으로 생성되는 컬럼은 CREATE TABLE 또는 ALTER TABLE 문에서 사용할 수 있는 기능으로 SQL에서 INSERT 또는 UPDATE 절을 통해 실제로 데이터를 보내지 않고 데이터를 저장하는 방법이다. 이 기능은 MySQL 5.7에서 추가되었습니다. 생성된 열은 테이블 필드 내에서 작동합니다. 구문은 다음과 같습니다. -

Syntax

column_name data_type [GENERATED ALWAYS] AS (expression)
[VIRTUAL | STORED] [UNIQUE [KEY]]

여기서 먼저 열 이름과 데이터 유형을 지정합니다.

  • 그런 다음 GENERATED ALWAYS 절을 추가하여 해당 열이 생성된 열임을 나타냅니다.
  • 그런 다음 적절한 옵션을 사용하여 생성된 열 유형(VIRTUAL 또는 STORED)을 나타냅니다. 기본적으로 MySQL은 생성된 열의 유형을 명시적으로 지정하지 않으면 VIRTUAL을 사용합니다.

뒤에는 AS 키워드 뒤 중괄호 안에 표현식을 지정합니다. 표현식에는 리터럴, 매개변수가 없는 기본 제공 함수, 연산자 또는 동일한 테이블의 열에 대한 참조가 포함될 수 있습니다. 함수를 사용하는 경우 스칼라이고 결정적이어야 합니다.

마지막으로 생성된 열을 저장하면 이에 대한 고유 제약 조건을 정의할 수 있습니다.

Example

이 예에서는 아래와 같이 생성된 열과 함께 직원 세부 정보가 포함된 Employee_data라는 테이블을 만듭니다. -

mysql> Create table employee_data(ID INT AUTO_INCREMENT PRIMARY KEY, First_name VARCHAR(50) NOT NULL, Last_name VARCHAR(50) NOT NULL, FULL_NAME VARCHAR(90) GENERATED ALWAYS AS(CONCAT(First_name,' ',Last_name)));
Query OK, 0 rows affected (0.55 sec)

mysql> DESCRIBE employee_data;
+------------+-------------+------+-----+---------+-------------------+
| 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    | VIRTUAL GENERATED |
+------------+-------------+------+-----+---------+-------------------+
4 rows in set (0.00 sec)

mysql> INSERT INTO employee_data(first_name, Last_name) values('Yashpal','Sharma');
Query OK, 1 row affected (0.09 sec)

mysql> INSERT INTO employee_data(first_name, Last_name) values('Krishan','Kumar');
Query OK, 1 row affected (0.09 sec)

mysql> INSERT INTO employee_data(first_name, Last_name) values('Rakesh','Arora');
Query OK, 1 row affected (0.08 sec)

mysql> Select * from employee_data;
+----+------------+-----------+----------------+
| ID | First_name | Last_name | FULL_NAME      |
+----+------------+-----------+----------------+
| 1  | Yashpal    | Sharma    | Yashpal Sharma |
| 2  | Krishan    | Kumar     | Krishan Kumar  |
| 3  | Rakesh     | Arora     | Rakesh Arora   |
+----+------------+-----------+----------------+
3 rows in set (0.00 sec)

위 내용은 MySQL GENERATED COLUMN은 무엇이고 테이블 생성 시 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제