2011-05-15 3 views
0

Perl의 DBD:SQLite 모듈을 사용하여 MySQLite 데이터베이스 파일을 작성하려고합니다.이 파일을 MySQL 배포판에서 읽을 수 있는지 궁금합니다. Perl을 사용하여 간단한 MySQL 데이터베이스를 만드는 더 좋은 방법이 있습니까?MySQL과 MySQLite에 대한 일반적인 질문들

의미가 있다면, 나는 데이터베이스를 사용하여 키의 고유 ID 번호를 기반으로 키 - 값 쌍을 저장하려고합니다. BerkeleyDB를 사용해 보았지만 Perl에 대한 지원이 거의 없었으며 특정 Windows 버전에서 과거에 제대로 작동하지 못했습니다.

편집 : BerkeleyDB를 사용하는 것이 더 좋은 방법이라는 것을 알고 있습니다. 그러나 스크립트를 작성할 때 대부분의 방법에는 TODO가 있으며 Windows Server 2003에는 동일한 밀폐성을 사용하여 신비한 버그가 있습니다. 집에있는 내 Win7 시스템에서 2 주 연속 실행되는 코드.

+2

나는'MySQLite'가 없다고 확신한다. 'SQLite'가 있으며 환상적입니다! – Rudie

+1

Perl에서 BerkeleyDB에 대한 지원이 상당히 있습니다. DB_File은 BDB 지원으로 구축 된 Perl에서 액세스 할 수있는 기본 방법입니다. CPAN에는 BDB 인터페이스의 많은 부분에 대한 액세스를 제공하는 BerkeleyDB 모듈이 있습니다. http://search.cpan.org/perldoc?BerkeleyDB – Schwern

답변

2

MySQL 또는 SQLite를 사용하여 데이터베이스를 읽는 데 사용할 수있는 Perl의 DBI module을 사용합니다. 올바른 드라이버 만 있으면됩니다. 실제로 프로그램을 올바르게 작성하면 백엔드 데이터베이스 (SQLite 또는 MySql)가 적합하지 않습니다. 프로그램은 둘 중 하나에서 작동합니다.

그러나 SQLite 데이터베이스를 사용하여 MySQL 데이터베이스로 취급 할 수는 없습니다. 그들은 두 개의 다른 생물입니다. 프로그램은 데이터베이스에 무관 할 수 있지만 일단 데이터베이스를 선택하면 앞뒤로 전환 할 수 없습니다. Oracle 데이터베이스를 MySQL 데이터베이스로 여는 것과 같습니다.

자세한 내용은 This posting on Perl Monks을 참조하십시오.

5

MySQL과 SQLite는 완전히 별개의 RDBMS 시스템입니다. MySQLite와 같은 것은 없습니다. 내가 아는 한, MySQL은 SQLite 데이터베이스를 읽을 수 없습니다. 당신이 정말로 원하는 모든 키 - 값 저장소 인 경우

, 아마도 레디 스 살펴 : http://code.google.com/p/redis/

+0

사실 MySQL 구문은 SQLite와는 아주 다릅니다 (CREATE, ALTER 등). 그들은 매우 호환되지 않습니다. 그러나 대부분의'SELECT' 쿼리는 있습니다. – Rudie

2

버클리 잘 펄에 의해 지원됩니다. 구형 DB_File과보다 완벽한 기능을 갖춘 BerkeleyDB 모듈을 선택할 수 있습니다.

그러나 선택의 폭이 있습니다. 별도의 서버 프로세스를 실행하지 않으려면 DBI 및 DBD :: SQLite 또는 BerkeleyDB 또는 AnyDBM_File 모듈을 사용하십시오. 간단한 서버 기반 키 - 값 저장소의 경우 redis 또는 이전 memcached가 있습니다.