[英]Add a new column to an existing MySeQL table and without overlapping exsisting table values
我已经创建了一个数据库并在该DB中添加了一些列。现在我需要在现有数据库中添加一些列,其中包含一个新列但不重叠现有表值。
添加具有现有表值的新表时,我遇到了一些错误
在两步过程中使用标准SQL来插入新行并更新现有行。 以下是一种方法,但它不是最好的方法:
插入到t1(a,b,c)中选择ld,le,lf从t2作为l左外连接t1为r on ld = ra其中ra为null; 将t1更新为l内连接t2为r on la = rd set lb = re,lc = rf;
您可以在onUpgrade()方法中使用ALTER TABLE
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//add new coloumn and change your database version to an increased new value
if (newVersion > oldVersion) {
db.execSQL("ALTER TABLE TABLE_NAME ADD COLUMN NEW_COLOUMN_NAME TEXT NOT NULL");
}
}
尝试以下查询
INSERT INTO new_table(col1,col2,col3 ....)SELECT col1,col2,col3 .... FROM existing_table
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.