Я использую C # / .NET с оболочкой C # для SQLite. Я пытаюсь объединить две базы данных SQLite вместе, исключая дубликаты.
Я нашел это, на которое ссылаются несколько разных вопросов на форуме. http://old.nabble.com/Attempting-to-merge-large-databases-td18131366.html
Я пробовал приведенные ниже запросы, которые я структурировал по предоставленной мной ссылке, но они приводят к исключениям, базы данных вообще не объединяются и исходная база данных вообще не изменяется.
attach 'c:\test\b.db3' as toMerge;
insert into AuditRecords select * from toMerge.AuditRecords;
Вот мой код запроса.
public void importData(String fileLoc)
{
SQLiteTransaction trans;
string SQL = "ATTACH '" + fileLoc + "' AS TOMERGE";
SQLiteCommand cmd = new SQLiteCommand(SQL);
cmd.Connection = connection;
connection.Open();
trans = connection.BeginTransaction();
int retval = 0;
try
{
retval = cmd.ExecuteNonQuery();
}
catch (Exception)
{
trans.Rollback();
MessageBox.Show("An error occurred, your import was not completed.");
}
finally
{
trans.Commit();
cmd.Dispose();
connection.Close();
}
SQL = "INSERT INTO SUBCONTRACTOR SELECT * FROM TOMERGE.SUBCONTRACTOR";
cmd = new SQLiteCommand(SQL);
cmd.Connection = connection;
connection.Open();
trans = connection.BeginTransaction();
retval = 0;
try
{
retval = cmd.ExecuteNonQuery();
}
catch (Exception)
{
trans.Rollback();
MessageBox.Show("An error occurred, your import was not completed.");
}
finally
{
trans.Commit();
cmd.Dispose();
connection.Close();
}
}
У меня вопрос: что я делаю не так? И кто-нибудь знаком с командой вставки? Я не уверен, если это исключит дубликаты, как мне нужно.