2012-09-06 7 views
0

MYSQL 데이터베이스의 특정 테이블 정보가있는 서식있는 텍스트 파일을 생성하는 서비스가 있습니다. 현재 프로그래밍 방식으로 DB를 쿼리하고 TEXT 파일에 덤프합니다. MYSQL에서 동일한 작업을 수행 할 수 있는지 궁금합니다.MYSQL 덤프 서식이 지정된 텍스트 파일

즉, 새 레코드가 특정 테이블에 추가되면 MYSQL은 해당 형식의 텍스트 파일을 생성하는 코드를 실행하게됩니다.

+0

[트리거] (http : //)에서 [OUT ... [OUT ...]을 선택할 수 있습니다 (http://dev.mysql.com/doc/en/select-into.html). dev.mysql.com/doc/en/triggers.html). – eggyal

+0

@eggyal 잘 모르겠지만 새로운 항목을 추가하는 대신 파일을 덮어 쓰는 것이 문제 일 수 있습니까? 따라서 레코드를 삽입 할 때마다 전체 테이블을 작성해야합니다. – fancyPants

답변

1

사용 사례에 대해 많이 말하지 않았지만 CSV 엔진이 원하는 것일 수 있습니다. manual에서

:

당신이 CSV 테이블을 생성, 서버는 데이터 디렉토리에 테이블 포맷 파일을 만듭니다. 파일은 테이블 이름으로 시작하고 확장자가 .frm입니다. 스토리지 엔진은 또한 데이터 파일을 생성합니다. 그 이름은 테이블 이름으로 시작하고 확장자가 .CSV입니다. 데이터 파일은 일반 텍스트 파일입니다. 데이터를 테이블에 저장하면 스토리지 엔진은 쉼표로 구분 된 값 형식으로 데이터 파일에 저장합니다.

mysql> CREATE TABLE test (i INT NOT NULL, c CHAR(10) NOT NULL) 
    -> ENGINE = CSV; 
Query OK, 0 rows affected (0.12 sec) 

mysql> INSERT INTO test VALUES(1,'record one'),(2,'record two'); 
Query OK, 2 rows affected (0.00 sec) 
Records: 2 Duplicates: 0 Warnings: 0 

mysql> SELECT * FROM test; 
+------+------------+ 
| i | c   | 
+------+------------+ 
| 1 | record one | 
| 2 | record two | 
+------+------------+ 
2 rows in set (0.00 sec) 

를 CSV 테이블 작성, MySQL은 5.1.9부터

또한 테이블의 상태 테이블에 존재하는 행의 수를 저장하는 해당 메타 파일을 생성한다. 이 파일의 이름은 확장자 CSM이있는 테이블의 이름과 같습니다. 당신이 앞의 문을 실행에 의해 생성 된 데이터베이스 디렉토리에 test.CSV 파일을 검사하는 경우

, 그 내용은 다음과 같아야합니다 :이 형식은 읽기, 심지어 쓸 수

"1","record one" 
"2","record two" 

, 스프레드 시트로 Microsoft Excel 또는 StarSuite Calc와 같은 응용 프로그램.

관련 문제