0

如果记录存在,我需要更新它,否则插入它。我知道这已被问过几次,但我认为我的问题有点棘手。

我有一张表(tbl_settings):

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

ETC

这是一个移动应用程序,我会将用户设置保存在远程数据库中,以便以后可以在需要时检索。

Setting_id 是唯一的并且自动递增。

令牌将成为设备令牌 ID(特定于用户)

Setting_value 是该特定设置的值(开/关)

setting_for 是实际设置的名称

现在有 4 个可供用户使用的设置选项,可以在单独的时间(当用户更改设置开/关时)或一起写入数据库,如果更好的话。

因此,如果用户更改振动设置,我需要一个查询来检查振动和令牌是否存在更新该特定记录,否则插入令牌、setting_value 和 setting_for。

希望它可能在一个查询中。如果不是,我将只使用多个查询,一个用于检查它是否存在,另一个用于插入或更新。

4

1 回答 1

0

MySQL为此提供了两种选择:

请注意,在这两种情况下,您都必须放弃setting_id(无论如何这似乎毫无意义)并使用复合主键。

于 2013-02-08T00:46:14.987 回答