【數據庫】——SQLite使用drop column刪除表字段

因爲項目需求變動,我須要在sqlite的表中刪除一個字段,通用的sql操做語句以下:sql

alter table task drop column custom_fields; 

結果數據庫提示以下錯誤:數據庫

sqlite> ALTER TABLE task DROP COLUMN custom_fields; 
Error: near "DROP": syntax error

搜索得知,原來SQLite目前還不支持drop column,因此必須想出另一種方法來進行表字段的刪除。spa

以下sql語句會複製一個和record表同樣表結構的temp表出來,可是咱們想要的是去除某一個字段(例如去除record表中的name字段,就不要複製它就行了),因此sql語句以下:code

create table temp as select id, name, type, trigger, state, next_run_time, description, failed_times, scheduler from task where 1 = 1;

這樣複製出來的表就會缺乏「custom_fields」字段,而後咱們刪除舊錶並修改新表名便可。sqlite

drop table task;  
alter table temp rename to task;
相關文章
相關標籤/搜索