从 SQLite 表中删除列

Delete column from SQLite table(从 SQLite 表中删除列)
本文介绍了从 SQLite 表中删除列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题:我需要从我的 SQLite 数据库中删除一列.我写了这个查询

alter table table_name drop column column_name

但它不起作用.请帮帮我.

解决方案

更新:SQLite 2021-03-12 (3.35.0) 现在支持 DROP COLUMN.网站上的常见问题解答仍然过时.


来自:http://www.sqlite.org/faq.html:><块引用>

(11) 如何在 SQLite 中的现有表中添加或删除列.

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

例如,假设您有一个名为t1"的表.带列名a"、b"和c"并且您要删除列c";由此桌子.以下步骤说明了如何做到这一点:

开始交易;创建临时表 t1_backup(a,b);INSERT INTO t1_backup SELECT a,b FROM t1;删除表 t1;创建表 t1(a,b);INSERT INTO t1 SELECT a,b FROM t1_backup;删除表 t1_backup;犯罪;

I have a problem: I need to delete a column from my SQLite database. I wrote this query

alter table table_name drop column column_name 

but it does not work. Please help me.

解决方案

Update: SQLite 2021-03-12 (3.35.0) now supports DROP COLUMN. The FAQ on the website is still outdated.


From: http://www.sqlite.org/faq.html:

(11) How do I add or delete columns from an existing table in SQLite.

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;

这篇关于从 SQLite 表中删除列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)