집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 다른 열을 기반으로 열을 효율적으로 계산하려면 어떻게 해야 합니까?
MySQL에서 다른 열을 기반으로 효율적으로 열을 계산하는 방법
MySQL 5.7.6 이상에는 생성된 열(Generated Columns)이 도입되었습니다. 이는 동일한 테이블의 기존 열을 기반으로 새 열의 값을 자동으로 계산하는 효율적인 방법입니다. 뷰와 달리 생성된 열은 테이블 정의의 일부이며 소스 열이 변경되면 자동으로 업데이트됩니다.
가상 생성 열 및 저장된 생성 열
생성된 열은 가상이거나 저장될 수 있습니다.
이 경우 새 레코드를 삽입하거나 기존 레코드를 업데이트할 때 계산된 값을 즉시 사용할 수 있어야 하므로 생성된 열을 저장하는 것이 더 적합합니다.
스토리지를 활용한 생성 컬럼 구현
테이블에 price
과 quantity
라는 두 개의 열이 있고 값이 amount
과 price
의 곱인 새 열 quantity
을 추가하려고 한다고 가정합니다. 다음 SQL 문을 사용하여 스토리지 생성 열을 생성할 수 있습니다.
<code class="language-sql">CREATE TABLE order_details ( price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity) STORED );</code>
열이 생성되면 amount
이 테이블의 각 행에 대해 자동으로 계산되어 저장됩니다. price
또는 quantity
을 변경하면 amount
업데이트가 실행됩니다.
테이블 데이터가 포함된 예
샘플 데이터를 삽입한 후:
<code class="language-sql">INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);</code>
테이블은 다음과 같습니다.
id | price | quantity | amount |
---|---|---|---|
1 | 100 | 1 | 100 |
2 | 300 | 4 | 1200 |
3 | 60 | 8 | 480 |
amount
필요에 따라 열이 자동으로 채워지고 업데이트되므로 계산된 값에 효율적으로 액세스할 수 있습니다.
위 내용은 MySQL의 다른 열을 기반으로 열을 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!