Android 向表中添加列时可能发生的冲突

Android 向表中添加列时可能发生的冲突,android,database,sqlite,Android,Database,Sqlite,目前,我有一个android sqllite数据库,其中包含以下列、a列和B列的许多表 现在,我需要在数据库中创建A列、B列和C列的表,以便以后创建表。我可以保留A列和B列的旧表,而不做任何更改 因此,我有以下担忧 假设我有以下代码 rssiDB.execSQL("CREATE TABLE IF NOT EXISTS " + rssiTableName + " (ssid VARCHAR, bssid VARCHAR , rssi INTEGER )" ); 如果不存在,它的含义是什么。如果

目前,我有一个android sqllite数据库,其中包含以下列、a列和B列的许多表

现在,我需要在数据库中创建A列、B列和C列的表,以便以后创建表。我可以保留A列和B列的旧表,而不做任何更改

因此,我有以下担忧

假设我有以下代码

rssiDB.execSQL("CREATE TABLE IF NOT EXISTS "  + rssiTableName + " (ssid VARCHAR, bssid VARCHAR , rssi INTEGER )" );
如果不存在,它的含义是什么。如果我试图创建一个表名已经存在但列数不同的表,那么创建表会成功吗?实际上会发生什么

例如,我有一个表名为testing20的表,列值为a743954759,-40

现在我想创建一个表名为testing20的表,列值为peterwifi,a7954759,-60

上面的代码将创建一个名称相同但列数不同的表

2在一个数据库中,是允许数据库有许多不同列的表,还是数据库必须让每个表都有确切的列数或列名

假设我有一个数据库,其中一个表名为testing1,表名为a列和B列。现在我可以将一个表名为testing2,表名为a列、B列和C列的表添加到数据库中吗

我知道我可以试试这个来了解自己。不过,如果我尝试一下,恐怕会影响我现有的表。
希望有人能回答我的问题。谢谢

表是数据库中唯一的对象,所以您可以用相同的名称定义两个表。但是您可以使用
onUpgrade()
方法上的
alter TABLE
函数更改现有表并添加新列,如下所示:

 @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    // If you need to add a column
    if (newVersion > oldVersion) {
        db.execSQL("ALTER TABLE foo ADD COLUMN new_column INTEGER DEFAULT 0");
    }
}

有关更多信息,请参阅此问题

不能有两个同名的表。您希望解释器如何区分这两个表?