使用FMDB插入数据并在存在现有数据时进行更新?

时间:2015-03-01 12:23:46

标签: ios fmdb

我正在使用FMDB,我将数据插入到我的数据库中:

NSString *sql = [NSString stringWithFormat:@"insert into \"main\".\"DailyCycles\" ( \"objectID\",\"UserID\", \"Calories\") values ( '%@', '%@', %@)",
                 dailyTotal.objectId,
                 dailyTotal.userID,
                 dailyTotal.caloires,
                 ];

但是,我不想在数据库中重复。我已经尝试过"更新到"但随后它不会插入新数据。有没有办法确保在只更新任何现有记录时没有现有记录时将数据插入数据库?

1 个答案:

答案 0 :(得分:0)

请参阅此问题:INSERT IF NOT EXISTS ELSE UPDATE?

顺便说一下,在构建这样的SQL查询时要非常小心。 NSString stringWithFormat不适用于此类用途,您可能正在打开SQL注入的方式。这是你应该怎么做的:

[db executeUpdate:@"insert into main.DailyCycles ( objectID, UserID, Calories) values (?, ?, ?)", dailyTotal.objectId, dailyTotal.userID, dailyTotal.calories];