如何使用python将整个列(包括数据类型)从sqlite表复制到另一个表?

时间:2011-03-10 09:28:53

标签: python sqlite

我正在尝试编写一个用于删除sqlite中的列的函数(因为有时我可能想要删除太旧的列。)

1 个答案:

答案 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;