У меня есть две таблицы sqlite, которые успешно слились с использованием этого кода;
private static void MergeDatabase(string table, string mainDatabase, string mergeDatabase)
{
string SQL = "ATTACH '" + mergeDatabase + "' AS TOMERGE";
SQLiteCommand cmd = new SQLiteCommand(SQL);
string databasePath = mainDatabase;
string connectionString = string.Format("Data Source={0}; Version=3", databasePath);
SQLiteConnection connection = new SQLiteConnection(connectionString);
cmd.Connection = connection;
connection.Open();
int retval = 0;
try
{
retval = cmd.ExecuteNonQuery();
}
catch (Exception)
{
Console.WriteLine(DateTime.Now.ToString("yy.MM.dd HH:mm:ss") + " An error occurred, your import was not completed.");
}
finally
{
cmd.Dispose();
}
SQL = "INSERT INTO " + table + " SELECT * FROM TOMERGE." + table + " WHERE Name NOT IN (SELECT Name FROM " + table + ")";
cmd = new SQLiteCommand(SQL);
cmd.Connection = connection;
retval = 0;
try
{
retval = cmd.ExecuteNonQuery();
}
catch (Exception)
{
Console.WriteLine(DateTime.Now.ToString("yy.MM.dd HH:mm:ss") + " An error occurred, your import was not completed.");
}
finally
{
cmd.Dispose();
connection.Close();
}
}

Результат:

Да, это слияние, но я не знаю, как с этим справиться, если я просто обновлю некоторые элементы в таблице2, как это;
Как вы видите, обновленный элемент из таблицы 2 только вверх.
Я хочу что-то, что может обрабатывать слияния, а также обрабатывать, когда я обновляю некоторые элементы в table2, он просто обновляется в table1, не добавляя их.