我需要重命名sqlite数据库中的一些表中的几个列。
我知道一个 similar question曾经问过stackoverflow以前,但它是一般的sql,而sqlite的情况没有提到。
我知道一个 similar question曾经问过stackoverflow以前,但它是一般的sql,而sqlite的情况没有提到。
从ALTER TABLE的sqlite文档,我认为不可能做到这一点“轻松”(即单个ALTER TABLE语句)。
假设你有一个表,需要将“colb”重命名为“col_b”:
首先你重命名旧表:
ALTER TABLE orig_table_name RENAME TO tmp_table_name;
然后根据旧表创建新表,但使用更新的列名:
CREATE TABLE orig_table_name ( col_a INT,col_b INT );
然后从原始表中复制内容。
INSERT INTO orig_table_name(col_a,col_b) SELECT col_a,colb FROM tmp_table_name;
最后,放下旧桌子。
DROP TABLE tmp_table_name;
将所有这些都包含在BEGIN TRANSACTION中;和COMMIT;也可能是个好主意。