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