>데이터 베이스 >MySQL 튜토리얼 >MySQL의 다른 열을 기반으로 열을 자동으로 계산하려면 어떻게 해야 합니까?

MySQL의 다른 열을 기반으로 열을 자동으로 계산하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-17 07:51:18698검색

How Can I Automatically Calculate a Column Based on Another Column in MySQL?

MySQL의 다른 열을 기반으로 자동으로 열 계산

데이터베이스 프로그래밍의 세계에서 테이블은 데이터 저장의 초석이지만 때로는 기존 열에서 추가 정보를 파생해야 하는 경우도 있습니다. 여기에서 계산된 열이 등장하여 다른 열을 기반으로 값이 자동으로 업데이트되는 새 열을 만드는 방법을 제공합니다.

데이터베이스 설정

다음 형식을 고려하세요.

<code>id | value
--------------
1     6
2     70</code>

문제 설명

이 작업은 "값" 열의 절반인 "계산됨"이라는 열을 추가하는 것입니다. 이 계산된 열은 '값' 열이 변경되면 자동으로 업데이트되어야 합니다.

해결책: 열 생성

MySQL 5.7.6 이상에는 "생성 열"이라는 기능이 도입되었습니다. 이러한 열을 사용하면 뷰와 유사하지만 테이블의 필수 부분으로 기존 열을 기반으로 하는 동적 계산이 가능합니다.

생성된 열에는 두 가지 유형이 있습니다.

  • 가상(기본값): 테이블에서 레코드를 읽을 때 즉시 계산됩니다.
  • 저장용량: 테이블에 새 레코드가 삽입되거나 업데이트될 때 계산됩니다.

업적

이 예에서는 저장된 생성 열을 사용합니다. 이를 추가하는 SQL 문은 다음과 같습니다.

<code>ALTER TABLE table_name ADD COLUMN calculated AS (value / 2) STORED;</code>

이렇게 하면 각 행의 '값' 열 값의 절반으로 '계산됨'이라는 새 열이 생성됩니다.

장점 및 주의사항

열 생성에는 다음과 같은 장점이 있습니다.

  • 자동 업데이트: 소스 열이 변경되면 계산된 열이 자동으로 업데이트되므로 값이 항상 정확합니다.
  • 인덱싱 가능: 저장된 생성 열을 인덱스의 일부로 사용하여 쿼리 성능을 향상시킬 수 있습니다.
  • NOT NULL 제한: 가상 및 저장된 생성 열 모두 NOT NULL 제한을 적용하여 데이터 무결성을 보장할 수 있습니다.

계산된 열을 추가하면 테이블은 다음과 같습니다.

<code>id | value | calculated
-----------------------
1     6       3
2     70      35</code>

결론

생성된 열은 계산된 열을 테이블에 추가하는 강력한 방법을 제공합니다. "저장된" 옵션을 활용하면 계산된 열이 자동으로 업데이트되고 인덱싱될 수 있으므로 데이터 관리의 유연성과 효율성이 향상됩니다.

위 내용은 MySQL의 다른 열을 기반으로 열을 자동으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.