如何重命名 SQLite 数据库表中的列?

问题描述

这刚刚在2018-09-15 (3.25.0)中修复

增强ALTER TABLE命令:

  • 添加对使用ALTER TABLEtable重命名表中的列的支持RENAME COLUMN oldname TO newname
  • 修复表重命名功能,以便它还更新触发器和视图中对重命名表的引用。

您可以在下面找到记录的新语法ALTER TABLE

RENAME COLUMN TO语法将表 table-name 的 column-name 更改为 new-column- name。列名在表定义本身以及引用该列的所有索引、触发器和视图中都发生了更改。如果列名更改会导致触发器或视图中的语义模糊,则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;


安卓支持

在撰写本文时,

基于 Android 正在使用的当前版本以及此更新将在 SQLite 版本 3.25.0 中提供,我会说您需要等待(大约 API 33)才能将对此的支持添加到 Android。

而且,即便如此,如果您需要支持任何早于 API 33 的版本,您将无法使用它。

解决方法

ALTER TABLE的 SQLite
文档中,我了解到不可能“轻松”地做这样的事情(即单个 ALTER TABLE 语句)。

我想知道有人知道用 SQLite 做这样的事情的通用 SQL 方式。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...