• 締切済み

MySQLのDBI

PostgreSqlのDBIからMySQLのDBIへと 移植を試みたいのですがどこから手を付けて良いか判りません。 大雑把過ぎるとは思いますが、どこから調べたら良いか教えていただければと思います。 またこの作業は時間がかかるものですか?

  • MySQL
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

追記です。 (つーか、書いてる最中に気付けよ → 私) 今から MySQL を導入されるのであれば、4.1.x とか、 それ以降のバージョンになるでしょうから、サブクエリは大丈夫だと思われます。 (けど、Fedora3 や、RHLE だと 3.2x だったような…)

回答No.1

確かに大雑把な質問ですね(^^; ですので、的確な回答はできませんが、 最近 Postgres(以下 pg) と MySQL を並行して使っているので私見をば。 移植作業に時間がかかるかどうかは、それぞれの DB のバージョン、 移植しようとするシステムの規模、内容によります。 まぁ、DBI そのものが移植性を高めるために存在するようなもの(だったと思う)ですので、 データベースにアクセスする部分の変更というのは、 かなり少ないと思います。 (実際私は、DB 接続部分だけをエディタで一発置換して、ほとんどが動きました) ただ、MySQL のバージョンによっては、サブクエリが使えませんので サブクエリを利用してレコードを取得するような部分については それなりに書き直さなくてはなりません。 また、それぞれの DB 独特のクエリ(構文?)を使っている場合も同様でしょう。 簡単にですが、こんなところでしょうか。 ですから、どこから調べたら良いか? という問いに対しては 使用している pg と導入しようとしている MySQL で共用できるクエリがどれだけあるか。 同時に、DB 依存の構文が書き直すだけで実現できるのか、 またはかなりコーディングし直さなきゃならないのか、 というのを調べていくのがいいんじゃないでしょうか。

関連するQ&A

  • DBIがうんともすんとも言いません だれか助けてください

    症状: perlのプログラム内でDBIを使うと、その後の行がすべてスキップされてしまいます。エラーをだしてくれることもなく、何が原因なのかさっぱりわかりません。 「 #!/usr/bin/perl use DBI; print "Content-type: text/html", "\n\n"; print "this is test"; $d = 'DBI:mysql:test:Localhost';# データソース $u = 'root';# ユーザ名 $p = 'mypass';# パスワード # データベースへ接続 $dbh = DBI->connect($d, $u, $p) or print "Can't connect to MySQL"; print "<br />success!"; 」 「this is test」は表示されるのですが、「success!」が表示されないのです。もちろん「Can't connect to MySQL」も、その他のエラー表示も表示されません。 「 $dbh = DBI->connect($d, $u, $p) or print "Can't connect to MySQL"; 」 の行を消すと、「success!」も表示されます。 DBIを再インストールしたほうがよいのでしょうか? もともと、DBIをインストールするとき、いろいろてこずっていて、その時に何かおかしなことになってしまったのかもしれません。 それとも別の場所に問題があるのでしょうか。 ________________________________ 環境: Ubuntu8 Xampp ちなみにcpanで i DBIとやると、 「 CPAN: Storable loaded ok (v2.18) Going to read /root/.cpan/Metadata Database was generated on Fri, 20 Jun 2008 07:02:51 GMT Strange distribution name [DBI] Bundle Bundle::DBI (TIMB/DBI-1.605.tar.gz) Module = DBI (TIMB/DBI-1.605.tar.gz) 2 items found 」 とでます。 この問題のおかげでもう2日間作業がすすまないでいます。どなたか力をかしてください。おねがいします。

    • ベストアンサー
    • Perl
  • perl - DBI -mysql windows

    ここで質問していいのか分かりませんが、 可能かどうかも分かりませんが、 お願いします。 windowsの環境で perl と mysql のインストールは済んだのですが、 ppm より dbiをインストールしようとすると install DBI と打ち込んだ時点で ファイルが見つからないとエラーが出ました。 インストールしたパールのフォルダの中を見てみると あるべきDBIフォルダがPPMの中にありません。 これらのファイルはどこからどう取得すればいいのでしょうか? お願いします。

  • perl5.88で、DBI及びDBD-mysqlモジュールがインストールできない。

    質問があるのですが、よろしくお願いします。 perl5.8.8を導入し、ppmでDBIモジュールとDBD-mysqlモジュールをインストールしようと思ったのですが、コマンドラインから ppm install DBI としても Downloading ActiveState Package Repository Packlist...not modified No missing packeages to install というエラーが出てしまい、全くインストール出来ません。 ppm install DBD-mysql とした時も同様です。 どうしてこのようなエラーがでるのか、またどうすればDBI、DBD-mysqlモジュールがインストール出来るか、わかる方いらっしゃたらご教授頂けると幸いです。よろしくお願いしますm(_ _)m

  • DBIとDBD-mysqlのインストールについて

    sea_clear_skyです。 質問させて頂きます。 環境 Win98SE ACTIVEPERL API522e.exe JPERL    jperl522 ACTIVEPERL API522e.exeと JPERL    jperl522をインストールし、 PPMでDBIとDBD‐MYSQLのパッケージをインストールしようとすると DBIでも、DBD‐MYSQLの場合でも、MSDOS上で、 mismatched tag at line 18, column 2, byte 640 at C:/Perl/site/lib/XML/Parser.pm line 168 と表示され、パッケージがインストールされません。 回線はフレッツADSLを使用しています。 すいませんが、解決方法をご教授願います。 よろしくお願いします。 もし、この現象が解決できない場合は他のPealを使用したいので、 WIN98SEの環境で入るPEALについて教えて欲しいです。 MYSQLに繋げて、いろいろしたいので、MYSQLにつながり、 PERLのCGIの作成できるものが希望です。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • perlのDBIからmysqlにINSERTINTOをやっても追加されない。help!!

    助けてください、お願いします。 phpadminで管理しているmysqlのDBへ、perlのDBIモジュールを使ってレコードの追加(INSERTINTO)をやっても、phpadminでDBをみてみると追加されていません。 DBIを組み込んだCGIを実行してみてもエラーはでないのですが、DBへの追加ができていません。 色々とやってみたのですが、どうしても追加ができません。考えられる要因があれば教えてください、お願いします。ソースは以下の通りです。 use DBI; $dbh=DBI->connect('DBI:mysql:データベース名:サーバホスト','ユーザ名','パスワード') or die $DBI::errstr; $sthandler = $dbh->prepare("INSERT INTO `table名` (`姓`, `名`, `メールアドレス`, `年齢`) VALUES ('名字', '名前', 'mailaddress', '0')"); $sthandler->execute; $sthandler->finish(); $dbh->commit; $dbh->rollback; $dbh->disconnect; 本当に困っています。どうかお助けください。

    • ベストアンサー
    • MySQL
  • class:DBIについて

    はじめまして。 perlのclass::DBIを使ってプログラムを書いています。 このclass::DBIで文字コードを指定するにはどうしたらいいのかわかりません。 (set names utf8というやつです。) わかる方教えてください。 今は次のように記述しています。 package CDBI; use strict; use base 'Class::DBI'; $Class::DBI::Weaken_Is_Available = 0; __PACKAGE__->set_db('Main', 'DBI:mysql:database', 'user', 'pass'); 1;

  • perlでのDBI接続

    こんにちは。 DBI自体良く分かっていないのですが下記はperlでDBIにアクセスするようなのですがどのようなことを定義しているのでしょうか? $Config{DB_DSN} = 'DBI:mysql:palnet;hostname=**.**.*.*'; $Config{DB_AAA} = 'aaa'; $Config{DB_BBB} = 'bbb'; $Config{DB_AAA} は『aaaですよ』ってことですか? だとしたら『DBI:mysql:palnet』の意味がわかりません。 サイトとか検索して調べてみたのですがいまいちわかりませんでした。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • MySQLのDBIでは、サイズで制限があるのでしょうか?

    MySQLで LONGTEXT型 指定できるMAXサイズ 4.2Gバイトまで格納できますが DBI (DBD-mysql)でインサートさせる場合、プレースホルダーでデータの追加を行おうとすると、 DBD::mysql::st execute failed: MySQL server has gone away at スクリプト名 line 142, <GEN0> line ???? と表示されます。 サイズを試行錯誤でどこまでいけるか確めたところ、 982937バイトまでは登録できますが982938でエラーになります。 MySQLのLONGTEXT型は4.2Gバイトなのに、100万バイト(約1Mバイト)でエラーになるのは、がっかりです。 皆さんは、1Gクラスのデータを挿入する(機会は少ないと思いますが) どのようにされているのでしょうか? 私の環境だけが悪いのでしょうか? Perl5.6.1(Win) MySQL4.0.20

    • ベストアンサー
    • MySQL
  • DBIによるまとめて実行

    現在、PerlのDBIを使用し、MySQLの処理をするバッチ プログラムを開発しております。 データが1万件ほどあるのですが、1万データに対して、 1日1回ステータス等の反映処理を行わなければいけま せん。 これを現在ではfetchrowを使用し1万データを回して 各種updateをかけているのですが、非常に時間がかかるため、 何かまとめてupdateがかけられる方法がないかと質問さ せていただきました。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • aaacafe(AAA!CAFE)でDBIがつかえない

    aaacafe(AAA!CAFE)でperlでmysqlを使いたいのですが、「内部サーバエラー」がでて、使えません。 いろいろ設定してみたところ、 use DBI を宣言した時点でだめみたいです。 そこで質問ですが、perlからmySQLを使うにはどうすればいいのでしょうか? できればDBI経由で設定したいです。実際に使えている方がいましたらお教え願います。phpならサンプルがあるのですが。