2017-08-08 42 views
0

我试图用FMDB删除从人柱姓氏,如何使用FMDB删除特定表格的列?

let query = "ALTER TABLE Persons DROP COLUMN last_name;" 
try FMDBHelper.database.executeUpdate(query, values: nil) 

但带有错误

DB Error: 1 "near "DROP": syntax error".

+0

[如何删除或添加列在SQLITE中?](https://stackoverflow.com/questions/8442147/how-to-delete-or-add-column-in-sqlite) –

+0

@AhmadF FYI我正在尝试SWIFT-FMDB。 – Amit

回答

2

SQLite不支持DROP列ALTER TABLE。

您只能重命名表格并添加列。

如果您需要删除列,请创建一个新表,在那里复制数据,删除旧表并将表重命名为其名称。

参考:http://www.sqlite.org/lang_altertable.html

0

请注意,我举报过你的问题可以被复制,我会提供一个答案,使之更加清晰。

我认为你是缺少一个点,那就是:在FMDB是(作为其回购的描述中提到):

This is an Objective-C wrapper around SQLite

请记住,因为FMDB是建立在SQLite的顶部,它是而不是从库本身的限制;它与SQLiteALTER TABLE的工作方式有关。

SQLite ALTER TABLE声明仅限于重命名一张桌子和add一个新列到所需的表:

SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table.

http://www.sqlite.org/lang_altertable.html


为了实现你在寻找:

您可以查看Delete column from SQLite table的回答。