1
我在數據庫MyTable
和MyTableChanges
中有兩個表。我想檢測更改(哪些記錄是從MyTableChanges
插入/刪除或編輯的)。在SQLite中比較兩個表
可能嗎?我只想使用SQLite
查詢來執行此操作。
我知道我可以使用2個查詢類似下面的檢測插入和移除行:
SELECT DISTINCT SomePrimaryKey
FROM MyTable
WHERE SomePrimaryKey Not IN
(SELECT DISTINCT SomePrimaryKey FROM MyTableChanges)
但如何比較的變化?也許有一些辦法,處理列和連接上的哈希。我不知道如何開始。請建議我!
編輯
我知道我可以做這樣的事情:
CREATE TABLE Test1
(
MI_PRINX INTEGER PRIMARY KEY AUTOINCREMENT,
Name CHAR(100),
Value INTEGER
);
CREATE TABLE Test2
(
MI_PRINX INTEGER PRIMARY KEY AUTOINCREMENT,
Name CHAR(100),
Value INTEGER
);
INSERT INTO Test1 (Name, Value) VALUES('Name1', 1);
INSERT INTO Test1 (Name, Value) VALUES('Name2', 2);
INSERT INTO Test1 (Name, Value) VALUES('Name3', 3);
INSERT INTO Test1 (Name, Value) VALUES('Name4', 4);
INSERT INTO Test2 (Name, Value) VALUES('Name1', 2);
INSERT INTO Test2 (Name, Value) VALUES('Name3', 3);
INSERT INTO Test2 (Name, Value) VALUES('Name4', 5);
INSERT INTO Test2 (Name, Value) VALUES('Name5', 6);
INSERT INTO Test2 (Name, Value) VALUES('Name6', 7);
INSERT INTO Test2 (Name, Value) VALUES('Name7', 8);
-- suppose Name is unique
SELECT * FROM Test1 JOIN Test2 ON Test1.Name = Test2.Name
WHERE Test1.Value <> Test2.Value
但它有點不舒服的解決方案,因爲我需要爲許多列很長的查詢...任何其他的想法?
不,它只是MyTable'的'副本。我想將平板設備與服務器同步。 – Nickon