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

发布于 2024-10-21 02:24:03 字数 49 浏览 1 评论 0原文

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

I'm trying to write a function for removing columns in sqlite(Because sometimes I might want to delete columns which are too old).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如梦初醒的夏天 2024-10-28 02:24:03

来自 SQLite 常见问题解答

SQLite 对 ALTER TABLE 支持有限
您可以使用它来添加一列
表的末尾或更改
表的名称。如果你想做
更复杂的结构变化
的表,你将不得不重新创建
桌子。您可以保存现有数据
到临时表,删除旧的
表,创建新表,然后复制
数据从临时返回
表。

例如,假设您有一张桌子
名为“t1”,列名为“a”,
“b”和“c”以及您想要的
从此表中删除列“c”。这
以下步骤说明了如何做到这一点
可以做到:

 开始交易;
    创建临时表 t1_backup(a,b);
    插入 t1_backup 从 t1 中选择 a,b;
    删除表 t1;
    创建表 t1(a,b);
    插入 t1 从 t1_backup 中选择 a,b;
    删除表 t1_backup;
    犯罪;

From SQLite FAQ:

SQLite has limited ALTER TABLE support
that you can use to add a column to
the end of a table or to change the
name of a table. If you want to make
more complex changes in the structure
of a table, you will have to recreate
the table. You can save existing data
to a temporary table, drop the old
table, create the new table, then copy
the data back in from the temporary
table.

For example, suppose you have a table
named "t1" with columns names "a",
"b", and "c" and that you want to
delete column "c" from this table. The
following steps illustrate how this
could be done:

    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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文