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();
相关推荐
葛小白12 小时前
C#数据类型:string简单使用
服务器·数据库·c#
污斑兔2 小时前
MongoDB的$sample是啥?
数据库·mongodb
马丁的代码日记3 小时前
MySQL InnoDB 行锁与死锁排查实战演示
数据库·mysql
拍客圈4 小时前
数据主站+副站做的设置
数据库
计算机学长felix5 小时前
基于SpringBoot的“面向校园的助力跑腿系统”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·后端
金仓拾光集5 小时前
__工艺数据管理的范式转变:金仓数据库替代MongoDB实操实践__
数据库·mongodb
xiaogg36786 小时前
redis-cluster集群配置部署
数据库·redis·缓存
运维小文6 小时前
MySQL高可用方案MIC&mysqlCluster+mysqlRouter
数据库·mysql·mic·mysql高可用·mysqlcluster·mysqlrouter
不剪发的Tony老师6 小时前
Redis Commander:一款基于Web、免费开源的Redis管理工具
数据库·redis
金仓拾光集6 小时前
__金仓数据库替代MongoDB护航医疗隐私:医院患者随访记录安全存储实践__
数据库·安全·mongodb