Einzelnen Beitrag anzeigen

Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#2

AW: Sync/Abgleich zweier SQLite Datenbanken - ATTACH, JOIN, etc

  Alt 3. Apr 2013, 16:02
Hallo,

Für meine beiden Fragen konnte ich mir mittlerweile folgende beide Abfragen erarbeiten:

Code:
SELECT * FROM SyncDB.Table1 WHERE SyncDB.Table1.GUID NOT IN (SELECT GUID FROM Table1)

SELECT * FROM SyncDB.Table1 JOIN Table1 ON SyncDB.Table1.GUID = Table1.GUID WHERE SyncDB.Table1.VersionKey != Table1.VersionKey
Das klappt soweit ganz gut, es werden die richtigen Ergebnisse geliefert. Nun kann ich die Ergebnisse natürlich Zeile für Zeile durchlaufen und einzeln in INSERTs oder UPDATEs stecken. Schöner wäre es natürlich die Ergebnisse direkt in SQL weiter verwenden zu können. Hierzu habe ich folgendes Beispiel gefunden:

Code:
UPDATE
    Table1
SET
    col1 = SyncDB.Table1.col1,
    col2 = SyncDB.Table1.col2
FROM
    Table1
INNER JOIN
    SyncDB.Table1
ON
    Table1.GUID = SyncDB.Table1.GUID
Das sieht sehr vielversprechend aus und wäre genau was ich suche, funktioniert aber leider nicht. Hier meldet mir SQLite einen Syntax Fehler beim FROM. Weiß jemand ob diese Art der Abfrage bei SQLite generell nicht möglich ist, oder ob ich hier einen Fehler mache?

Damit das Ganze wirklich perfekt wäre, müsste man die Abfrage natürlich noch um einen Test der Versionen ergänzen. Zudem muss die Abfrage in dieser Form für jede Tabelle speziell mit den jeweiligen Spaltennamen erstellt werden. Gibt es auch ein Update der Form:

Code:
UPDATE
  Table1
SET
  "Alle Spalten in Table1 außer der ID-Spalte" = "Jeweilige Spalte aus Tabelle SyncDB.Table1"
FROM/WHERE
  ...
  Mit Zitat antworten Zitat