0

アプリケーションのユーザーに関するデータを含む MySql データベースがあります。このアプリケーションはすでに製品化されていますが、日々改良が加えられています。私が行った最後の改善は、データを収集してデータベースに挿入する方法を変更したことです。

明確にするために、私のデータベースは、ユーザーデータを含む5つのテーブルと、外部キーを介してすべてのテーブルを関連付ける1つのテーブルで構成されています。これらの 5 つの外部キーが一緒になって、私が持っているこの「メイン テーブル」の一意のインデックスを形成します。

問題は、ユーザー データを含むこれらのテーブルの 1 つがその形式を変更したことです。アプリケーションで行った変更よりも古いすべてのデータを削除したい (このテーブルから、そのままにしておく必要がある他のテーブルのみ)。ただし、このデータセットにはメイン テーブルに外部キーがあり、他の情報が重要であるため、これらの行をメイン テーブルにドロップすることはできません。具体的には、このテーブルの外部キーの値を変更しようとしましたが、明らかに、重複したインデックスに関連する問題があります。

インターネットで読んで、「挿入...重複キー更新時...」を使用して問題の解決策を見つけましたが、データを挿入するのではなく、更新するだけです。PHP でデータベースを更新するプログラムを作成する方法についてアイデアがありますが、他に簡単な解決策はありますか? MySql 構文だけを使用してこれらの問題を回避することは可能ですか?

4

1 に答える 1

0

以下のリンクを見る価値があるかもしれません

http://www.kavoir.com/2009/05/mysql-insert-if-doesnt-exist-otherwise-update-the-existing-row.html

于 2013-05-17T17:20:42.960 に答える