小编典典

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

all

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

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


阅读 82

收藏
2022-04-14

共1个答案

小编典典

这刚刚在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;

db-fiddle.com 演示


安卓支持

在撰写本文时, Android 的 API 27 使用 SQLite 包版本
3.19

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

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

2022-04-14