Android 向表中添加列时可能发生的冲突
目前,我有一个android sqllite数据库,其中包含以下列、a列和B列的许多表 现在,我需要在数据库中创建A列、B列和C列的表,以便以后创建表。我可以保留A列和B列的旧表,而不做任何更改 因此,我有以下担忧 假设我有以下代码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 )" ); 如果不存在,它的含义是什么。如果
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");
}
}
有关更多信息,请参阅此问题不能有两个同名的表。您希望解释器如何区分这两个表?