我正在尝试编写一个用于删除sqlite中的列的函数(因为有时我可能想要删除太旧的列。)
答案 0 :(得分:1)
来自SQLite FAQ:
SQLite限制了ALTER TABLE支持 您可以用来添加列 表的结尾或改变 表的名称。如果你想做 结构中更复杂的变化 一个表,你将不得不重新创建 桌子。您可以保存现有数据 到临时桌子,放弃旧的 表,创建新表,然后复制 从临时数据返回的数据 表
例如,假设您有一张桌子 名为“t1”,列名为“a”, “b”和“c”和你想要的 从此表中删除列“c”。该 以下步骤说明了这一点 可以做到:
BEGIN TRANSACTION; CREATE TEMPORARY TABLE t1_backup(a,b); INSERT INTO t1_backup SELECT a,b FROM t1; DROP TABLE t1; CREATE TABLE t1(a,b); INSERT INTO t1 SELECT a,b FROM t1_backup; DROP TABLE t1_backup; COMMIT;