sqlite de Android CREAR TABLA SI NO EXISTE

Tener un pequeño problema con la creación de nuevas tablas. Cuando uso el command CREATE TABLE mis nuevas tablas se forman como deberían, pero cuando salgo de la actividad, la aplicación falla y aparece una TABLA YA EXISTE en el logcat. Si utilizo CREATE TABLE IF NOT EXISTS, la nueva tabla no se forma sino que simplemente agrega mis nuevas filas de datos a una tabla anterior y no se cuelga. ¿Qué está mal con esto? Me gustaría agregar la tabla sin que me diga que ya existe y me gustaría agregar sin agregar filas a una tabla diferente.

Clase SqliteHelper:

public class MySQLiteHelper extends SQLiteOpenHelper { public static final String TABLE_NAME = MainActivity.NameName; public static final String COLUMN_ID = "_id"; public static final String COLUMN_COMMENT = "comment"; public static final String COLUMN_LAT = "lat"; public static final String COLUMN_LONG = "long"; public static final String COLUMN_RADI = "radi"; private static final String DATABASE_NAME = "spraylogs.db"; private static final int DATABASE_VERSION = 1; public static final String NEWTABLE = "CREATE TABLE " + TABLE_COMMENTS + "(" + COLUMN_ID + " integer primary key autoincrement, " + COLUMN_COMMENT + " text not null," + COLUMN_LAT+ "," + COLUMN_LONG + "," + COLUMN_RADI + ");"; public static final String SaveIt = "CREATE TABLE IF NOT EXISTS " + TABLE_COMMENTS + "(" + COLUMN_ID + " integer primary key autoincrement, " + COLUMN_COMMENT + " text not null," + COLUMN_LAT+ "," + COLUMN_LONG + "," + COLUMN_RADI + ");"; MySQLiteHelper(Context context) { super(context, context.getExternalFilesDir(null).getAbsolutePath() + "/" + DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase database) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(MySQLiteHelper.class.getName(), "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS " + NEWTABLE); onCreate(db); } } 

Así es como se supone que debe funcionar. CREATE TABLE lanzará una exception si la tabla ya existe. CREATE TABLE IF NOT EXISTS creará la tabla si no existe, o ignorará el command si lo hace. Si desea que elimine la tabla anterior, utilice DELETE TABLE IF EXISTS antes de CREATE TABLE . Si desea cambiar el esquema, use ALTER TABLE , no CREATE TABLE .

Lo uso así:

  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; } }