[SQL] MySQL의 : 계산 된 열
SQLMySQL의 : 계산 된 열
난 그냥 문제에 SQL 및 달렸다을 사용하기 시작하고 있습니다.
내 데이터베이스에서 나는 현재 두 테이블, 영화관 및 극장이있다. 나는 카운트 영화관 테이블의 영화와 같은 CinemaID (외래 키)와 함께 극장 테이블에있는 극장의 수. 내가 같은 일에 도착하는 영화관 테이블에서 "극장 번호의 #을 열을 만들려고 해요 SQL 쿼리 :
SELECT cinemas.CinemaID,Town,COUNT(*) AS '# of Theatres'
FROM cinemax.cinemas,cinemax.theatres
WHERE cinemas.CinemaID=theatres.CinemaID
GROUP BY cinemas.CinemaID;
그러나 자동으로 위의 쿼리와 삽입 각 행에 값을 수행하는, 영화관 테이블의 열을 만들 수 있는지 알고 싶어.
내가 단지 (심지어 가능하면) 이러한 계산 열을 만드는 방법을 배우고 싶다, 속도가 정말 문제가되지 않습니다 그래서 아주 작은 데이터베이스가 될 것입니다.
해결법
-
==============================
1.것이 가능하다. 하지만 당신은 그것을 할 것이다.
것이 가능하다. 하지만 당신은 그것을 할 것이다.
즉, 비정규라고 - 보통 전혀 좋은 생각이 아니다.
때로는 그러나, 당신은 절대적으로합니다 (예 좋은 이유 근처에 아무데도) 어떤 이상한 이유로 뭔가를 비정규 화해야 할 수도 있습니다. 이러한 경우, 자동으로 트리거 코드를 추가 아무것도 결과에 영향을 미칠 수있는 시스템에 변경 될 때마다 값을 관리해야합니다.
-
==============================
2.계산 된 열은 일반적으로 사용자가 행마다 산출 할 수있는 값을 의미한다. MySQL은 그를 지원하지 않지만, SQL Server는 않습니다. 예를 들어, 영구적으로 두 열의 합을 저장합니다 :
계산 된 열은 일반적으로 사용자가 행마다 산출 할 수있는 값을 의미한다. MySQL은 그를 지원하지 않지만, SQL Server는 않습니다. 예를 들어, 영구적으로 두 열의 합을 저장합니다 :
create table Table1 (a int, b int, c as a+b persisted)
그러나, 당신은 집계, 행의 그룹에 대한 값을 저장하기 위해 찾고 있습니다. MySQL과 SQL 서버 지원은 집계와 전망을 구체화하지 않지만, 오라클을 수행합니다
create table Table1 (a int, b int); create materialized view View1 as select a , count(*) as Cnt from Table1 group by a;
그러나 MySQL은, 당신이 할 수있는 가장 가까운 주기적으로 테이블을 채 웁니다 cronjob에이다 :
truncate table Table1Summary; insert Table1Summary (a, Cnt) select a, count(*) from Table1;
당신은 구체화 된 뷰와 같은 테이블을 조회 할 수 있습니다; 그것은 빨리 될 수 있지만 최신이 보장되지 않습니다.
-
==============================
3.MySQL의에서 당신은 당신은 당신이하고자 실제 열을 원하는 경우
MySQL의에서 당신은 당신은 당신이하고자 실제 열을 원하는 경우
-
==============================
4.MySQL은 지원 5.7에서 열을 생성 않습니다
MySQL은 지원 5.7에서 열을 생성 않습니다
from https://stackoverflow.com/questions/5422729/mysql-computed-column by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] OLEDB 예외를 진단 할 때 2010 쿼리 엑셀 (0) | 2020.06.14 |
---|---|
[SQL] MSSQL 2008 R2 집계 기능이없는 피벗 (0) | 2020.06.13 |
[SQL] PostgreSQL는 주어진 ID에 대한 가장 최근 항목을 선택 (0) | 2020.06.13 |
[SQL] 여러 열을 일치 뚜렷한 결과를 제공 SQL 쿼리 (0) | 2020.06.13 |
[SQL] plpgsql의 트리거 기능에 여러 열을 업데이트 (0) | 2020.06.13 |