在 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();