2012-01-23 6 views
0

Cronジョブ:メール通知を送信するためにcronジョブ内の2つのDBを比較する

csvファイルをMySQL $ db1にインポートします。 $ db2への新規接続を確立し、$ db2のデータを含む新しい$ db1.tableを作成します。

これらの2つのデータベースの結果を比較し、行が$ db1.csvtableから$ db1.db2tableに一致する場合、cronジョブ中に通知を電子メールで送信する方法が不思議です。

私はこのプロジェクトに正しい方法で近づいていますか?結果を一意のIDで比較する方法はないので、データベースが大きすぎないので、各列を比較することをお勧めします。

ご協力いただきありがとうございます。明確にする必要がある場合はお知らせください。 (php-mysqlを使用)

答えて

0

これを行う1つの方法は、注文されたフラットファイルとしてディスクにデータをダンプし、commを使って一致する行を見つけることです。このような

何か:

mysql -h db1 -e "select * into outfile '/tmp/db1.txt' from your_table order by id;" 
mysql -h db2 -e "select * into outfile '/tmp/db2.txt' from your_table order by id;" 
comm -1 -2 /tmp/db1.txt /tmp/db2.txt > /tmp/matching.txt 
+0

これは、一致する行を使用して新しいテキストファイルを作成しますか? – baikon

+0

これは今です(編集を参照してください) –

+0

私はコマンドを実行すると "Unkown MySQL server host"を受け取っています。 -hはデータベース名またはホスト名であるはずですか? – baikon

関連する問題