欢迎投稿

今日深度:

修改sqlite字段类型,修改sqlite字段

修改sqlite字段类型,修改sqlite字段


在单机版部署的环境中,在软件升级时,对数据库的修改一般是用 SQL 语句来实现(不可能叫客户用 SQLite Expert 自己修改吧),本来用 SQL 语句修改字段不是啥复杂的事,举例如下:

-- 增加字段
ALTER TABLE Cftea_table Add column_name new_data_type

-- 删除字段
ALTER TABLE Cftea_table DROP COLUMN column_name

-- 修改字段类型
ALTER TABLE Cftea_table ALTER COLUMN column_name new_data_type

但是在 SQLite 中却不能这么做,因为 SQLite 目前还不支持直接修改字段。

只有变通处理如下:

-- 把原表改成另外一个名字作为暂存表
ALTER TABLE old_table_name RENAME TO temp_table_name;

-- 如果需要,可以删除原表的索引
DROP INDEX ix_name;

-- 用原表的名字创建新表
CREATE TABLE old_table_name(field_name INTEGER PRIMARY KEY AUTOINCREMENT, other_field_name text not null);

-- 如果需要,可以创建新表的索引
CREATE INDEX ix_name ON old_table_name(field_name);

-- 将暂存表数据写入到新表,很方便的是不需要去理会自动增长的 ID
INSERT INTO old_table_name SELECT * FROM temp_table_name

-- 删除暂存表
DROP TABLE temp_table_name;

www.htsjk.Com true http://www.htsjk.com/SQLite/33774.html NewsArticle 修改sqlite字段类型,修改sqlite字段 在单机版部署的环境中,在软件升级时,对数据库的修改一般是用 SQL 语句来实现(不可能叫客户用 SQLite Expert 自己修改吧),本来用 SQL 语句修改字...
相关文章
    暂无相关文章
评论暂时关闭