2011-10-14 4 views
0

하나의 메인 테이블이 있으며 다른 테이블로 데이터를 복사해야합니다. 전체 개념은 복사해야하는 테이블의 이름이 동적 인 것입니다 (이것은 foo + 주 테이블의 열 중 하나와 같습니다). 예를 들어하나의 테이블에서 다른 테이블로 데이터를 복사하는 가장 좋은 방법

, 내가있는 경우 :

INSERT INTO maintable (id, addtoname, somedata) VALUES (1, 234, 'foo data'); 

내가 복사 할 필요가 데이터 : othertable234 (somename + addtoname 열)

내가 MYSQL 트리거를했지만, 몇 가지 조사 후 나는 것을 발견 동적 테이블 이름을 가질 수 없습니다.

제가 염두에 두어야 할 다른 것은 PHP 데몬 스크립트를 작성하여 1-10 분마다 데이터를 복사하는 것입니다. 하지만 메모리 및 성능 문제가 걱정됩니다.

그럼, 이런 문제를 해결하는 가장 좋은 해결책은 무엇입니까?

+1

이 작업을 수행하는 목적은 무엇입니까? – xdazz

+0

내가 일하고있는 시스템은 1000 개가 넘는 방송국이있는 GPS 추적 시스템입니다. GPS 장치의 모든 데이터가 주 테이블에 삽입됩니다. 그래서 나는 (데이터 읽기를 위해) 각 스테이션마다 별도의 테이블을 갖는 것이 더 빠를 것이라고 결정했습니다. 문제는 내가 시스템의 새로운 버전을하고 있고 전에 일하는 것처럼 모든 것을 남겨 두어야한다는 것입니다. 그래서 사람들은 여전히 ​​오래된 것을 사용할 수 있습니다. –

답변

1

모든 스크립팅 언어를 사용하여이를 수행하고 10 분마다 스케줄러 (cron, windows scheduler)를 사용하여 실행할 수 있습니다. 실제 스크립트는 오직

create table tablename SELECT ... 

을 발행하면되므로 tablename의 파생 방법은 복잡합니다.

+0

그리고 테이블이 이미 존재할 때 INSERT INTO tablename SELECT를 할 수 있습니다. 에서 maintable WHERE ... –

관련 문제