我想从我的sqlite数据库中删除其中一列。我对此应用以下查询:
ALTER TABLE table_name DROP COLUMN column_name;
但它给了我以下错误:
near "DROP": syntax error
是sqlite3数据库中支持的drop column。如果是,那么这个查询有什么问题吗?
答案 0 :(得分:0)
我尝试使用ALTER TABLE User DROP COLUMN firstName;
只是为了看看它是否有效,但是
根据文档here,支持的唯一功能是DROP TRIGGER,INDEX,TABLE和VIEW
我真的怀疑是否支持DROP COLUMN。
编辑:Here在第11点,您可以找到问题的答案,内容如下:
SQLite限制了ALTER 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;