在sqlite数据库中更改表查询

时间:2012-06-06 05:33:36

标签: iphone sqlite

我想从我的sqlite数据库中删除其中一列。我对此应用以下查询:

ALTER TABLE table_name DROP COLUMN column_name;

但它给了我以下错误:

near "DROP": syntax error

是sqlite3数据库中支持的drop column。如果是,那么这个查询有什么问题吗?

1 个答案:

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