繁体   English   中英

将新列添加到现有MySeQL表,并且不重叠现有表值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM