0

レコードが存在する場合は更新する必要があり、そうでない場合は挿入します。これが何度か尋ねられたことは知っていますが、私の問題は少しトリッキーだと思います。

私はテーブル(tbl_settings)を持っています:

setting_id   |    token   |   setting_value   |   setting_for
1                 1           on                  background
2                 1           off                 vibrate
3                 2           on                  vibrate

これは、必要に応じて後で取得できるように、リモート DB にユーザー設定を保存するモバイル アプリ用です。

Setting_id は一意で、自動インクリメントです。

トークンは、デバイスのトークン ID (ユーザー固有) になります。

Setting_value は、その特定の設定の値 (オン/オフ) です。

Setting_for は実際の設定の名前です

現在、ユーザーが利用できる 4 つの設定オプションがあり、DB に個別に書き込むことができます (ユーザーが設定のオン/オフを変更したとき)。

したがって、ユーザーが振動設定を変更した場合、振動とトークンが存在するかどうかを確認するクエリが必要です。そうでない場合は、トークン、setting_value、および setting_for で挿入する特定のレコードを更新します。

うまくいけば、単一のクエリで可能です。そうでない場合は、複数のクエリを使用します.1つは存在するかどうかを確認し、もう1つは挿入または更新します。

4

1 に答える 1

0

MySQLには、これに対して2つのオプションがあります。

setting_idどちらの場合も、 (とにかく無意味に見える)を削除して、複合主キーを使用する必要があることに注意してください。

于 2013-02-08T00:46:14.987 に答える