0

大きな MySQL データベースがあり、重要な部分を小さな MySQL データベースに抽出しています。大きなデータベースの値は常に変化しています。小規模なデータベースも動的に変更する必要があります。

次のコードを使用して、空の場合にのみ小さなデータベースにデータを入力できます。

$SQL_INSERT="INSERT LOW_PRIORITY IGNORE INTO oddsnavi_baby.calc (one , two, three)
VALUES ('$one', '$two' , '$three')";

mysql_db_query($database_baby, $SQL_INSERT) or die("Failed Query of " . $SQL_INSERT);

変更された値を更新したいと思います。たとえば、小規模なデータベースで $three が既存の 'three' の値と異なる場合、'three' が行の唯一の更新された値になります。どうやってするか?

編集:次のコードでエラーが発生します。構文の何が問題になっていますか?

$SQL_INSERT="INSERT LOW_PRIORITY IGNORE INTO oddsnavi_baby.calc (one , two, three)
VALUES ('$one', '$two' , '$three')
ON DUPLICATE KEY UPDATE oddsnavi_baby.calc SET two = '$two' , three = '$three'
WHERE one = '$one'";
4

2 に答える 2

1

両方のデータベースが同じ物理ハードウェアでホストされている場合、「大きな」データベースの 1 つ以上のテーブルに UPDATE トリガーを実装して、「小さな」データベースの値を更新することを検討してください。

以下は、MySQL でのトリガーの使用に関する概要をまとめた記事です: http://www.roseindia.net/mysql/mysql5/triggers.shtml

于 2012-04-30T22:15:40.300 に答える
0

これを行うには、次の 2 つの方法が考えられます。

  1. 「大きな」データベースを変更するソフトウェアは、小さなデータベースを管理するソフトウェアに警告し、管理ソフトウェアは適切なフィールドを変更します。

  2. 2 つのデータベース間でビューを作成できると思いますが、そのようなことをしたことはありませんが、可能かどうかはわかりませんが、2 つ (またはそれ以上) のデータベース間で外部キーを作成できます。

于 2012-04-30T22:15:38.090 に答える