android sqlite CREATE TABLE IF NOT EXISTS android sqlite CREATE TABLE IF NOT EXISTS sqlite sqlite

android sqlite CREATE TABLE IF NOT EXISTS


That's how it's supposed to work. CREATE TABLE will throw an exception if the table already exists. CREATE TABLE IF NOT EXISTS will create the table if it doesn't exist, or ignore the command if it does. If you want it to delete the old table, use DELETE TABLE IF EXISTS before CREATE TABLE. If you want to change the schema, use ALTER TABLE, not CREATE TABLE.


I use it like this:

   internal static int checkTable()    {        DataTable dTable = new DataTable();        try        {            dbConn = new SQLiteConnection("Data Source=" + dbFileName + ";Version=3;");            dbConn.Open();            sqlCmd.Connection = dbConn;            String makeTable = "CREATE TABLE IF NOT EXISTS responde( id INTEGER PRIMARY KEY AUTOINCREMENT, sid TEXT, ans TEXT, answe TEXT, questid TEXT, timestamp TEXT)";            sqlCmd.CommandText = makeTable;            sqlCmd.ExecuteNonQuery();            return 1;        }        catch (SQLiteException) { Console.WriteLine("Error DB 100"); return 0; }        catch (IndexOutOfRangeException) { Console.WriteLine("Error DB 101"); return 0; }        catch (TypeInitializationException) { Console.WriteLine("Error DB 102"); return 0; }    }