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();
相关推荐
PythonFun14 分钟前
如何在WPS实现平行语料库简易检索
数据库·wps
ruxshui15 分钟前
Inceptor/hive中整数类型分桶键数据倾斜问题及优化方案
大数据·数据库·sql
OnYoung16 分钟前
Python生成器(Generator)与Yield关键字:惰性求值之美
jvm·数据库·python
Albert Tan29 分钟前
Oracle EBS 12.2.14双应用节点应用补丁-ADOP
数据库·oracle
觉醒大王32 分钟前
简单说说参考文献引用
java·前端·数据库·学习·自然语言处理·学习方法·迁移学习
what丶k44 分钟前
MySQL读写分离部署配置全解析(从原理到落地)
数据库·分布式·mysql
shengli7221 小时前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
了一梨1 小时前
SQLite3学习笔记2:SQL 基础语法
笔记·学习·sqlite
weixin_445402301 小时前
如何为开源Python项目做贡献?
jvm·数据库·python
2301_821369611 小时前
数据分析与科学计算
jvm·数据库·python