从ALTER TABLE的 SQLite 文档中,我了解到不可能“轻松”地做这样的事情(即单个 ALTER TABLE 语句)。
我想知道有人知道用 SQLite 做这样的事情的通用 SQL 方式。
这刚刚在2018-09-15 (3.25.0)中修复
增强ALTER TABLE命令: 添加对使用ALTER TABLEtable重命名表中的列的支持RENAME COLUMN oldname TO newname。 修复表重命名功能,以便它还更新触发器和视图中对重命名表的引用。
增强ALTER TABLE命令:
ALTER TABLE
RENAME COLUMN oldname TO newname
您可以在下面找到记录的新语法ALTER TABLE
该RENAME COLUMN TO语法将表 table-name 的 column-name 更改为 new-column- name。列名在表定义本身以及引用该列的所有索引、触发器和视图中都发生了更改。如果列名更改会导致触发器或视图中的语义模糊,则RENAME COLUMN失败并出现错误并且不会应用任何更改。
RENAME COLUMN TO
RENAME COLUMN
图片来源:https ://www.sqlite.org/images/syntax/alter-table- stmt.gif
例子:
CREATE TABLE tab AS SELECT 1 AS c; SELECT * FROM tab; ALTER TABLE tab RENAME COLUMN c to c_new; SELECT * FROM tab;
db-fiddle.com 演示
在撰写本文时, Android 的 API 27 使用 SQLite 包版本 3.19 。
基于 Android 正在使用的当前版本以及此更新将在 SQLite 版本 3.25.0 中提供,我会说您需要等待(大约 API 33)才能将对此的支持添加到 Android。
而且,即便如此,如果您需要支持任何早于 API 33 的版本,您将无法使用它。