【发布时间】:2019-10-08 10:27:54
【问题描述】:
我的 Android 应用中有一个 SQLite 数据库,我想更新它。更新需要将数据类型从 INT 更改为 FLOAT。我理解在 SQLite 中实现这一点的方法是创建一个新表,复制数据,然后用新表替换旧表。复制如下:
INSERT INTO newTable SELECT * FROM oldTable
整数值可以方便地转换为浮点值。
现在,另一个问题是,以前的可选列现在是“NOT NULL”,但有一个默认值。作为上述过程的一部分,我希望使用以下语句将所有 NULL 实例替换为默认值:
INSERT INTO newTable SELECT * FROM oldTable ON CONFLICT REPLACE
或者,为了完整起见,在 Android/Kotlin 中:
db.execSQL(“INSERT INTO newTable SELECT * FROM oldTable ON CONFLICT REPLACE”)
这给了我一个语法错误,我在别处找不到合适的例子。实现这一点的正确语法是什么 - 我正在尝试做的甚至可能吗?
【问题讨论】:
标签: android sqlite sql-insert