我想将DB列类型从字符串更改为int并将先前的表字符串值转换为新的int值。我想将关系列的值复制到新表中。我尝试过的是
database.execSQL("CREATE TABLE Backup (id TEXT NOT NULL, name TEXT NOT NULL,
property TEXT NOT NULL, relation INTEGER NOT NULL, PRIMARY KEY(id))")
database.execSQL("INSERT INTO Backup(id,name, property) SELECT
id,name,property FROM User")
database.execSQL("DROP TABLE User")
database.execSQL("ALTER TABLE Backup RENAME TO User")
如何复制我的关系列值?
答案 0 :(得分:2)
您可以使用CASE解决此问题。喜欢
database.execSQL("INSERT INTO Backup(id,name, property, relation) SELECT id,name,property, CASE WHEN relation == 'guest' THEN 1 WHEN relation == 'owner' THEN 2 END as relation FROM User");