Criar uma tabela se não existir uma instrução em SQLite
tenho uma aplicação WPF onde acedo a uma base de dados SQLite via ADO.NET ([5]} http://adodotnetsqlite.sourceforge.net até agora tudo funciona bem, mas quando tento executar o seguinte SQL:
sqlite_cmd.CommandText = "CREATE TABLE IF NOT EXISTS notes (id integer primary key, text varchar(100));";
sqlite_cmd.ExecuteNonQuery();
tenho a seguinte excepção:
An exception of type 'Finisar.SQLite.SQLiteException' occurred in SQLite.NET.dll but was not handled in user code.
Additional information: near "NOT": syntax error
Quando eu remover a parte IF NOT EXISTS
ele funciona bem, mas eu quero criar a tabela apenas se ela ainda não está lá. Há alguma coisa que eu esteja a fazer de errado?
1 answers
Esta pergunta tem algumas respostas que podem ser úteis. A partir dessa pergunta, porém, esta resposta sugere que o SQLite 3.3 e acima do suporte {[[0]}.
Com base nas respostas dessa pergunta, poderá tentar seleccionar a contagem das tabelas chamadas 'notes' usando esta consulta (ligeiramente modificada):
SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name='notes';
Você pode então testar o resultado dessa consulta. Se houver 0 resultados, crie a tabela. Caso contrário, não crie a mesa.