c# sqlite 修改字段类型

因为sqlite不支持直接修改字段类型, 所以只能创建新的表,再将原始数据复制过去。具体操作步骤如下:

第一步, 将表"tableName"的名称修改为 "oldTable"

复制代码
string queryString = string.Format("ALTER TABLE {0} RENAME TO {1}", "tableName", "oldTable");
SQLiteCommand cmd = new SQLiteCommand(queryString, dbConnection());
cmd.ExecuteNonQuery();

第二步:重新创新新的表"tableName", 这里就可以修改字段的类型

复制代码
queryString = @"CREATE TABLE IF NOT EXISTS " + "tableName"+ @"(
                        fTemplateid INTEGER,
                        fTemplatename VARCHAR)";
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();

第三步: 恢复数据(将表"oldTable"中的数据恢复到 "tableName")

复制代码
queryString = string.Format("INSERT INTO {0} SELECT fTemplateid,fTemplatename FROM {1}", "tableName", "oldTable");
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();

第四步: 删除表"oldTable"

复制代码
queryString = string.Format("DROP TABLE {0}", "oldTable");
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();
相关推荐
Hello World呀3 分钟前
登录时,redis出现错误
数据库·redis·缓存
企鹅侠客12 分钟前
第02章—先导基础篇:初识Redis
数据库·redis·缓存
哈哈老师啊14 分钟前
Springboot新冠检测信息管理系统10m6v(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
7ioik16 分钟前
MySQL默认事物隔离级别是什么?
数据库·mysql
程序边界21 分钟前
金仓数据库MongoDB兼容深度体验:从协议到性能的硬核拆解
数据库·mongodb
Miqiuha31 分钟前
软删除的好处
数据库
愚公搬代码33 分钟前
【愚公系列】《扣子开发 AI Agent 智能体应用》020-扣子数据库实战(创建/使用扣子数据库)
数据库·人工智能
冰冰菜的扣jio34 分钟前
InnoDB对于MVCC的实现
java·数据库·sql
老华带你飞1 小时前
婚纱摄影网站|基于java + vue婚纱摄影网站系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
Gofarlic_OMS1 小时前
从Adobe到SolidWorks:研发设计软件资产管理的现状分析
数据库·安全·adobe·oracle·金融·区块链