SQLite修改列名

139 阅读1分钟

SQLite 里,修改列名可以用 ALTER TABLE … RENAME COLUMN,但是要注意版本:

  • SQLite 3.25.0+(2018年9月之后的版本) 支持直接改列名。
  • 如果版本太旧,就不支持,需要重建表。

✅ 方法 1:直接改列名(推荐,前提是 SQLite 版本 ≥ 3.25)

语法:

ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名;

例子:

ALTER TABLE users RENAME COLUMN uname TO username;

✅ 方法 2:旧版本 SQLite(不支持 RENAME COLUMN)

只能通过 创建新表 + 拷贝数据 来变相“改名”:

-- 1. 改名旧表
ALTER TABLE users RENAME TO users_old;

-- 2. 创建新表,列名写正确
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username TEXT UNIQUE,
    password TEXT,
    role_id INTEGER,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 3. 拷贝旧数据(注意列对应关系)
INSERT INTO users (id, username, password, role_id, created_at)
SELECT id, uname, password, role_id, created_at
FROM users_old;

-- 4. 删除旧表
DROP TABLE users_old;

⚡ 小技巧:
可以先用下面命令确认自己 SQLite 版本:

SELECT sqlite_version();