Objective-C iOS应用程序将一个sqlite与一组行集成在一起,每行由一个ID标识。例如:
| id | user_name | age |
------------------------------
| 1 | johnny | 33 |
| 2 | mark | 30 |
| 3 | maroccia | 50 |异步地,应用程序接收相同的一组记录,但其中一些记录已被修改:它必须仅更新(或替换)已修改的记录,忽略其他记录(未修改的记录)。
例如,应用程序接收到以下更新的行:
| id | user_name | age |
------------------------------
| 1 | johnny | 33 |
| 2 | mark | 30 |
| 3 | ballarin | 50 | <------ CHANGED RECORD在这种情况下,只有第三条记录被更改,应用程序应该只更新或替换它,忽略前两条记录。显然,INSERT或REPLACE不适合我,因为它将写入所有记录。那么,在sqlite (或Objective-C)中有一些过程可以帮助我,只更新修改过的记录吗?谢谢
发布于 2018-02-15 02:37:04
您可以简单地替换所有行;结果是相同的。
如果不想重写实际未更改的行,则必须比较所有列值。如果旧行和接收到的行都位于不同的表中,则可以使用compound query比较整个行
INSERT OR REPLACE INTO MyData
SELECT * FROM ReceivedData
EXCEPT
SELECT * FROM MyData;https://stackoverflow.com/questions/48791221
复制相似问题